Ansible: Network Programming, Automation, and Feature Analysis Report

Verified

Added on  2023/06/10

|10
|3257
|68
Report
AI Summary
This report provides a comprehensive analysis of Ansible, an open-source automation tool used for configuration management and application deployment. It begins with an overview of Ansible's background, emphasizing its role in automating complex IT environments. The report then delves into Ansible's key features, including configuration management, application deployment, orchestration, security and compliance, and cloud provisioning. The core of the report focuses on the installation and configuration of Apache, MySQL, and PHP using Ansible, detailing the necessary steps and commands. Finally, it evaluates Ansible as a network programming and automation tool, highlighting its strengths and potential applications. The report includes references to relevant research and publications, offering a thorough examination of Ansible's capabilities and practical implementation.
Document Page
Programmability
Assessment 2
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Table of Contents
Document Page
Background of Ansible....................................................................................................................1
Analyse the features of Ansible.......................................................................................................2
Installation and configuration of Apache Server.............................................................................3
Installation and configuration of My SQL.......................................................................................4
Installation and configuration PHP..................................................................................................4
Evaluation of Ansible as a Network Programming and automation tool........................................5
References........................................................................................................................................7
Document Page
Background of Ansible
Ansible is a type of software which provides the open source features and configuration
management along with the application deployment tool which enables the infrastructure to act
as a code. It runs on more than one Unix like system and also can configure Microsoft Windows
as well. This is a type of software which is used to provide the underlying infrastructure of the
environment and also virtualize the host and hyper visuals along with the network devices and
bare metal servers also. It has the ability to install the services which add the computing host and
provide the resources along with the applications in the cloud. It is a type of platform which is
mainly used for the information technology task in order to manage the configuration and the
application deployment (Opdebeeck, Zerouali and De Roover, 2021). Automation is considered
important nowadays in order to collaborate with the information technology environments which
are considered as complex and required to scale quickly for the system administrators and also
for the developers in order to keep up with everything in a manual manner. Automation is a
process which simplifies complicated functions by not only just making the developers jobs
easier but also facilitating them to focus on the task and pay attention to the added value to the
organisation. So basically it helps in the time efficiency and increases the cost efficiency as well.
This is software which is used for automation that has raised up the top in the world among the
various automation tools. This software has an architecture which has different components in its
environment. Module is one of the components which are like the small programs that are
pushed by the software out from the control of the machine in order to integrate the nodes or the
remote host. These are the modules which are implemented with the help of clay books and also
control the things for example services and packages along with the files as well. This is
software which executes all the modules in order to install the updates and also provides
whatever the task is required and also removes them once it is finished. Moreover it also
provides multiple 450 modules for each and everyday tasks. Plugin is another component which
is considered as the extra pieces of the code which augments the functionality. Software contains
different numbers of plugins but it also allows writing on its own. They are some of the examples
of plugins such as action and cache along with the callback plugins. Inventories are also one of
the components which is considered as all the machines which are used with the software along
with the control machine and notes. These are listed in a single simple file and the IP addresses
along with the databases and servers and many more. It is important to register the inventory so
1
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
that the variables can be assigned to any of the hosts which are used by the simple text file.
Inventory can also be pulled from different sources like EC2 that is Amazon elastic compute
cloud. Play books are also another component of the software which is considered as the
instruction manual for tasks. Play books are basically the simple files which are written in
YAML. It is not any marker language but simply the human readable data serialisation language.
Play books are considered as the heart of the software and it is popular because it describes the
task in order to be done in a quick manner without any need of the user in an automated manner
while remembering the particular syntax. It is not only responsible for declaring the
configuration but also accountable for the orchestrate and also to execute the task simultaneously
or at the different times as well. There are different playbooks which are composed of more than
one place and the goal of the play is to map a host in a group into the wild roles which are
represented by the task. API is another component which stands for the application programming
interfaces that is available to extend the software connection types and callbacks and many more
(Dalla Palma, Di Nucci and Tamburri, 2020).
Analyse the features of Ansible
There are various features of ansible software. Configuration management is one of the features
because the software is designed and based on reliability and its simplicity along with being
consistent in terms of configuration management. Configurations in this software are simple in
the data descriptions of infrastructure which are readable by humans and also parsable by
machine. It uses the secure socket shell which is a network protocol in order to start managing
systems in terms of password. Application deployment is another feature of the software because
it quickly helps in the deployment of multi tier applications. Custom code is not necessary to
automate the system in the deployment feature because stars are required to be done by writing
in the playbook. The software figures the system and applications on every machine in a manual
manner. Orchestration is also one of the features of the software. It involved bringing up the
various elements in order to run the entire operation in the way the musical conductor produces
various instruments into an artistic work (Mysari and Bejgam, 2020). It not only manages the
front and but also the back and services along with the data pieces and networks and also the
storage. It is important to make sure that all the tasks are managed in an appropriate order.
Software uses the automated workflows in order to provide the orchestrating task in an easy
manner. Infrastructure is defined with the help of a playbook so that it can be used by
2
Document Page
orchestration as per the needs and requirements of the portability of the software. Security and
compliance is also another feature of the software. This software contains various security
policies which involve the firewall rules and also the locking down of the users which is
implemented with other automated processes. It is important to configure the details of the
security on the control machine in order to run the related playbook so that all the remote hosts
can be automatically updated related to the details. it means that it is not required to monitor each
and every machine for the security compliance on a regular basis. In terms of extra security it is
impossible to retrieve the administrator user id and password in a plain text on the software.
Cloud provisioning is another feature of software. It is considered as the first step of automating
the application life cycle in which infrastructure is automated. This software provides the cloud
platforms and virtualized host along with the network devices and bare metals servers (Rahman,
Rahman, Parnin and Williams, 2021).
Installation and configuration of Apache Server
Installation and configuration of Apache server using the ansible software has different steps.
First step is to update the system in order to install the software so that the commands for
configuration can be run and operated. The second stage is to check the version of the software
which is running on the operating system so that the update requirements can be fulfilled. It is
important to create the playbook which must be named as Apache.yml in order to install and run
the updated apache web server. Host is considered as a host name where the host file is defined.
Next step is to configure the file location and create the file which contains the configuration for
the virtual host. Next step is to add the template in the index file in order to create the file and
also to modify as per the needs and requirements of the user (Kokuryo, Kondo and Mizuno,
2020). Now it is time for the execution of the software while using the commands. This will help
in running the apache on its default port 80 which helps in verifying the browsing local host.
Running the playbook consists of several actions in the software host. Installing the aptitude that
is highly preferred by the software which is considered as the alternative to the apt package
manager. then the next step is to install the Apache and then create the custom document folder
so that the new Apache virtual host can be set up on the test page. Moreover it is important to
enable the new Apache a virtual host and also to disable the default Apache website in terms of
variable must be set to true. Setting up of the ufw in order to allow the hypertext transfer
protocol traffic on the configured port 80 by default. These steps help in finishing the running of
3
Document Page
the playbook and also the web browser on the target note that is based on the options which are
defined within the configuration variables (Opdebeeck, Zerouali, Velázquez-Rodríguez and De
Roover, 2020).
Installation and configuration of My SQL
Installing and configuration of my SQL using the ansible software also has various stages.
Installing the software is the first step because it helps in the simple accomplishment of installing
the personal package archive which also must be installed in the software package with apt. It is
important to add the personal package chief with the help of command and once it finishes it is
important to update and then finally install. Installing the required packages is a second step in
which there are different types of packages which require multiple configurations and hence it is
required to install for better settings and updated versions of the software (Opdebeeck, Zerouali,
Velázquez-Rodríguez and De Roover, 2021). Modification in the system configuration files is
the third step in which the user modified the configuration files as per the needs and
requirements of the system which must be compatible with the operating system as well. Cloning
the git repository is a fourth step and creating an application with composer is a fifth step.
Updating the environmental variables is the 6 steps in which all the variables which are
associated with the software requirement and my SQL software must be updated for the latest
version and new feature tools available for running the software. Configuration of Nginx is the
seventh step. All these are the steps which help with installation and the configuration of my
SQL software because it helps in ensuring the required software is installed or not along with the
modules and the local server as well. it also supports and facilitates with the guidance of starting
and in a building the my SQL services and also in the login credentials as well (Mallett, 2021).
Installation and configuration PHP
Installation and configuration of PHP using the ansible software has several steps. Configuration
of the software is the first step in which files and folders are stored while following some of the
commands. Creating the software play book is a second step. It includes several commands
which help in the installation of the PHP. It is important to add the PPA with the help of apt add
repository command. After finishing this it is important to update the apt cache. Installation of
the software is done while creating the new directory so that the setup of the basic configuration
can be performed. Downloading of the PHP software with the help of the software is now
4
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
performed with the help of the commands used in the software (Gupta, Chowdary, Bussa and
Chowdary, 2021). Commands on play book and coding can help in the proper configuration as
per the needs and requirements of the user. BHP is a programming language which is basically
used by the developer of a website or the software and it stands for the general purpose scripting
language. It was created in 1994 and now it is produced by the PHP group. It is the server sites
scripting language that is embedded in the hypertext markup language. It is basically used in the
management of dynamic content and data bases along with the session writing and building of
the entire electronic commerce sites. It is further integrated with several popular databases which
includes my SQL and Oracle and many more (Badalyan and Borisenko, 2019).
Evaluation of Ansible as a Network Programming and automation tool
Ansible software is used as the tool which assist in the network programming and also
provides automation services as well. This is a software which is a combination of both that is
network programming and automation which is known as a network automation tool as a Ansible
software. Networks rendered by the software benefits the users with simple and powerful along
with the agent less automation specially the users who are the network administrators and teams
who are using it on a regular or frequent basis. Networks modules within the software also aids
in the configuration of the network stack along with the testing and validating the existing state
of the network which further supports in the discovering and correcting network configuration
drift (Vadhera, Deshwal and Tripathi, 2021). Ansible is basically the open source information
technology automation tool which automates the configuration management and provisioning
along with the application deployment and orchestration and also the many more manual
information technology processes. It is a type of software which is a automation platform that
renders the organisations a framework for operating and building up the information technology
automation at scale and also from the hybrid cloud to the edge. This automation process helps in
enabling the user to create and share along with the management of automation from operations
and development to network teams and security. Networks are considered as the integral part of
the information technology companies and therefore it highly supports automation. There are
different tasks which are performed by the administrator who operates the software requires
networking technologies. Such tasks includes installation and configuration along with the
provisioning of servers and applications. Moreover, it also includes the updating and upgrading
of the systems on a regular basis along with the monitoring and mitigating and also the
5
Document Page
troubleshooting issues. There are several benefits of using the Ansible for information
technology automation and networking. It provides simple and human readable automation with
no special skills required for coding and tasks also executes in the systematic order which helps
in getting the productivity in a quick manner. Moreover, it is powerful that supports in
application deployment and also the orchestrating the application life cycle. It is agent less in
nature having the agent less architecture which uses the open SSH and WinRM which requires
no agents to update and exploit. There are several examples of network automation such as
restarting the failed devices and services which are provided by the Ansible software. Other
examples includes network file management and backups along with the on boarding and off
boarding of employee and generation of report which is followed by the configuration and
provisioning of network and reconfiguration of device settings as well. There are other examples
also which includes migration from SNMPv2 to v3 and ticket validation and also the
performance monitoring and scanning of the systems security (Kostromin, 2020).
6
Document Page
References
Books and Journals
Dalla Palma, S., Di Nucci, D. and Tamburri, D.A., 2020. AnsibleMetrics: A Python library for
measuring Infrastructure-as-Code blueprints in Ansible. SoftwareX, 12, p.100633.
Rahman, A., Rahman, M.R., Parnin, C. and Williams, L., 2021. Security smells in ansible and
chef scripts: A replication study. ACM Transactions on Software Engineering and
Methodology (TOSEM), 30(1), pp.1-31.
Opdebeeck, R., Zerouali, A., Velázquez-Rodríguez, C. and De Roover, C., 2020, September.
Does Infrastructure as Code adhere to Semantic Versioning? an analysis of Ansible role
evolution. In 2020 IEEE 20th International Working Conference on Source Code Analysis
and Manipulation (SCAM) (pp. 238-248). IEEE.
Mallett, A., 2021. Understanding Ansible and the Red Hat RHCE. In Red Hat Certified Engineer
(RHCE) Study Guide (pp. 1-9). Apress, Berkeley, CA.
Opdebeeck, R., Zerouali, A., Velázquez-Rodríguez, C. and De Roover, C., 2021. On the practice
of semantic versioning for Ansible galaxy roles: An empirical study and a change
classification model. Journal of Systems and Software, 182, p.111059.
Badalyan, D. and Borisenko, O., 2019. Ansible Execution Control in Python and Golang for
Cloud Orchestration. Available at SSRN 4037291.
Gupta, M., Chowdary, M.N., Bussa, S. and Chowdary, C.K., 2021, October. Deploying Hadoop
Architecture Using Ansible and Terraform. In 2021 5th International Conference on
Information Systems and Computer Networks (ISCON) (pp. 1-6). IEEE.
Kostromin, R., 2020. Survey of software configuration management tools of nodes in
heterogeneous distributed computing environment. In ICCS-DE (pp. 156-165).
Vadhera, K., Deshwal, A. and Tripathi, A., 2021. Optimization of Systems-Development Life
Cycle Through Automation Using Ansible. In Latest Trends in Renewable Energy
Technologies (pp. 229-240). Springer, Singapore.
Mysari, S. and Bejgam, V., 2020, February. Continuous Integration and Continuous Deployment
Pipeline Automation Using Jenkins Ansible. In 2020 International Conference on
Emerging Trends in Information Technology and Engineering (ic-ETITE) (pp. 1-4). IEEE.
Kokuryo, S., Kondo, M. and Mizuno, O., 2020, December. An empirical study of utilization of
imperative modules in ansible. In 2020 IEEE 20th International Conference on Software
Quality, Reliability and Security (QRS) (pp. 442-449). IEEE.
Opdebeeck, R., Zerouali, A. and De Roover, C., 2021, May. Andromeda: A dataset of Ansible
Galaxy roles and their evolution. In 2021 IEEE/ACM 18th International Conference on
Mining Software Repositories (MSR) (pp. 580-584). IEEE.
7
chevron_up_icon
1 out of 10
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]