{"id":72954,"date":"2019-09-20T07:05:14","date_gmt":"2019-09-20T07:05:14","guid":{"rendered":"https:\/\/www.whizlabs.com\/blog\/?p=72954"},"modified":"2021-02-14T06:54:10","modified_gmt":"2021-02-14T06:54:10","slug":"ansible-introduction","status":"publish","type":"post","link":"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/","title":{"rendered":"Ansible Tutorial &#8211; A Quick Introduction"},"content":{"rendered":"<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Looking at the present state of affairs, automation is the new trend in every sector. Automation finds prominent applications across different sectors such as advertising, marketing, sales, cloud, social media, and database management. Addressing the trouble of repetitive tasks, automation is here to stay! In this brief ansible tutorial, we shall take a look at one of the popular IT automation engines, i.e. Ansible. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The primary task of ansible is configuration management. <a href=\"https:\/\/www.whizlabs.com\/blog\/ansible-best-practices\/\" target=\"_blank\" rel=\"noopener\">Ansible best practices<\/a> make it an ideal alternative for obtaining the desired state in a particular infrastructure with the least human effort. In this article, we shall take a look at the ansible architecture, how it works, and various ansible advantages. Most important of all, the discussion would highlight the role of playbooks in Ansible. If you&#8217;re an Ansible professional preparing for an <a href=\"https:\/\/www.whizlabs.com\/blog\/red-hat-certified-specialist-in-ansible-automation-exam-preparation\/\" target=\"_blank\" rel=\"noopener\">Ansible certification<\/a>, this introduction is a good start for you. So, let\u2019s learn more about ansible.<\/span><\/p>\n<p><a href=\"https:\/\/www.whizlabs.com\/learn-kubernetes-with-aws-and-docker\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-72355 size-full\" src=\"https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/08\/Kubernetes_with_AWS_and_Docker.gif\" alt=\"Kubernetes Training Course\" width=\"728\" height=\"90\" \/><\/a><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #ea7e02;color:#ea7e02\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #ea7e02;color:#ea7e02\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/#Ansible_Tutorial_Starting_with_the_Basics\" >Ansible Tutorial: Starting with the Basics<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/#Defining_Ansible\" >Defining Ansible<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/#Reasons_to_Go_for_Ansible\" >Reasons to Go for Ansible<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/#The_Architecture_of_Ansible\" >The Architecture of Ansible<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/#Playbooks_in_Ansible\" >Playbooks in Ansible<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.whizlabs.com\/blog\/ansible-introduction\/#Final_Words\" >Final Words<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"p1\" style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Ansible_Tutorial_Starting_with_the_Basics\"><\/span><span class=\"s1\">Ansible Tutorial: Starting with the Basics<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The first point of interest in this discussion should be on what is ansible. However, let us take a look at some facts about Ansible. According to the <a href=\"https:\/\/www.ansible.com\/blog\/2017-community-year-in-review\" target=\"_blank\" rel=\"noopener noreferrer\">Ansible community review for 2017<\/a>, the Ansible user base got increased by 50%. Ansible also has its top-level topic among GitHub searches that leads to more than 5000 databases of Ansible content. Ansible also made to the top 10 of all GitHub projects in different categories according to the <a href=\"https:\/\/octoverse.github.com\/2017\/\" target=\"_blank\" rel=\"noopener noreferrer\">2017 GitHub Octoverse Report<\/a>. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The ever-increasing community of Ansible and the new features such as Ansible meetups and community working groups indicate Ansible\u2019s popularity. Considering these facts about Ansible, an Ansible tutorial can help you get a superficial idea about this configuration management tool. So, now we shall get to the definition of ansible, shall we?<\/span><\/p>\n<h3 class=\"p1\" style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Defining_Ansible\"><\/span><span class=\"s1\">Defining Ansible<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">When you find a question asking about what is ansible, the first thing on your mind should be \u2018automation\u2019! Ansible is an open-source IT automation engine ideal for application deployment, cloud provisioning, and intra-service orchestration. It is also helpful for automaton of many other IT tools. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Ansible provides exceptional ease of deployment without the need for custom security infrastructure or any agents. It depends on playbooks for describing automation jobs which is easy to understand. We shall reflect on playbooks in Ansible later on in this brief Ansible tutorial. Another interesting fact about ansible is its design for multi-tier deployment. So, with Ansible, you do not have to manage one system at a time.<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">On the contrary, Ansible prepares the IT infrastructure with a description of interrelation between all the systems. We shall also reflect on how ansible works in this discussion. However, before that, let us find out more about reasons to use Ansible. And, we are not talking about just the advantages here.<\/span><\/p>\n<blockquote><p>Also Read: <a href=\"https:\/\/www.whizlabs.com\/blog\/top-devops-tools\/\" target=\"_blank\" rel=\"noopener noreferrer\">Top 10 DevOps Tools<\/a><\/p><\/blockquote>\n<h3 class=\"p1\" style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Reasons_to_Go_for_Ansible\"><\/span><span class=\"s1\">Reasons to Go for Ansible<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The foremost agenda in this Ansible tutorial while discussing reasons to use ansible shall start with configuration management. If you have a background in development or operations or you are a DevOps professional, then you must have gone through a series of processes. It may have been logging into a server for changing configuration option, restarting a service or installing a package. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Must have been quite easy logging in through SSH and making changes to the application before logging out, wasn\u2019t it? However, imagine that you face the same issue after some weeks or months! By now, you must have forgotten about how you achieved the fix in the first place. Therefore, you can use Ansible for managing servers with higher speed, consistency, and iteration. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The prominent highlight you can find in almost any Ansible tutorial is Ansible\u2019s simplicity. Ansible is easy to understand as compared to other configuration management tools and also provides credible efficiency and functionality. You can also find other prominent reasons to use Ansible as we move ahead gradually in our discussion.<\/span><\/p>\n<blockquote><p>Preparing for an Ansible interview? Go through these <a href=\"https:\/\/www.whizlabs.com\/blog\/ansible-interview-questions\/\" target=\"_blank\" rel=\"noopener noreferrer\">top Ansible interview questions<\/a> and get ready to crack the Ansible interview.<\/p><\/blockquote>\n<h3 class=\"p1\" style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"The_Architecture_of_Ansible\"><\/span><span class=\"s1\">The Architecture of Ansible<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The next important element in almost every ansible tutorial refers to the architecture of ansible. An understanding of the different elements in the architecture of Ansible can also support our understanding of how ansible work. The six prominent components of Ansible include modules, module utilities, inventory, playbooks, plugins, APIs, and the Ansible search path. Let us discuss each of them briefly as a promising addition to this brief introductory guide on Ansible. <\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li class=\"p1\" style=\"text-align: justify;\">\n<h4><span class=\"s1\">Modules<\/span><\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The first element in ansible architecture refers to modules. Ansible works through connecting to different nodes and pushing out scripts known as \u201cansible modules\u201d on them. The modules accept parameters describing the desired state of a system. Subsequently, ansible ensures execution of the modules followed by removing them upon finishing. The default method for executing modules is over SSH. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The library of modules can exist on any machine without the need for servers, databases, or daemons. Ansible gives much-needed flexibility for scripting your modules. The text editor terminal program and the version control system in Ansible can help in tracking changes in content. Furthermore, you can write specialized modules in languages such as Ruby, bash, or Python, which return JSON. <\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li class=\"p1\" style=\"text-align: justify;\">\n<h4><span class=\"s1\">Module Utilities<\/span><\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The next important addition to the architecture of Ansible is module utilities. Module utilities are one of the major reasons for simple ansible usage. In cases of multiple modules using the same code, Ansible ensures storage of the functions as module utilities. The module utilities help in reducing duplication and maintenance. The example of a code that parses URLsis an ideal reference for module utilities. The code can be \u201clib\/ansible\/module_utils\/url.py.\u201d Also, you have the flexibility to write your module utilities. Python or PowerShell is ideal for writing module utilities.<\/span><\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-72968 aligncenter\" src=\"https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture.png\" alt=\"Ansible Architecture\" width=\"800\" height=\"460\" srcset=\"https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture.png 800w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture-300x173.png 300w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture-768x442.png 768w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture-730x420.png 730w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture-640x368.png 640w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/ansible_architecture-681x392.png 681w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<ul style=\"text-align: justify;\">\n<li class=\"p1\" style=\"text-align: justify;\">\n<h4><span class=\"s1\">Plugins<\/span><\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Plugins are also one of the common entries in the architecture of ansible found commonly in every ansible documentation. They are known for improving the core functionality of Ansible. Plugins execute on control node in the \u201c\/usr\/bin\/ansible\u201d process rather than executing on a remote system like modules. They provide extensions and options for core functionalities in Ansible. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The core functionalities include data transformation, connecting to inventory, logging output, and others. Although you can find a fair number of usable plugins at your disposal when you ship in Ansible, you could also write some plugins on your own. One instance can involve writing an inventory plugin for connecting to any data source returning JSON. Python is the sole language for writing ansible plugins.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li class=\"p1\" style=\"text-align: justify;\">\n<h4><span class=\"s1\">Inventory<\/span><\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The next important element in the architecture of ansible refers to Inventory. Ansible provides a representation of machines that it manages in a file which is responsible for putting all the managed machines. You can assign managed machines to groups of own choosing. Every ansible documentation would outline the role of inventory in ansible. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">You don\u2019t need any additional SSL signing server for adding new machines. Therefore, there are no issues in deciding on reasons for which specific machines do not get linked for DNS issues or obscure NTP. Ansible could derive inventory, variable, and group information from different sources such as Rackspace, EC2, OpenStack, and others. The example of a plain text inventory is shown as follows.<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">---<\/span>\r\n\r\n<span class=\"s1\">[webservers]<\/span>\r\n\r\n<span class=\"s1\">www1.example.com<\/span>\r\n\r\n<span class=\"s1\">www2.example.com<\/span>\r\n\r\n<span class=\"s1\">[dbservers]<\/span>\r\n\r\n<span class=\"s1\">db0.example.com<\/span>\r\n\r\n<span class=\"s1\">db1.example.com<\/span><\/pre>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">After listing inventory hosts, you can assign variables to them in simple text files. You can assign variables directly in the inventory file or the subdirectory known as \u2018group_vars\/\u2019 or \u2018host_vars\/.\u2019<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li>\n<h4>APIs<\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Ansible APIs are used as transport for Cloud services whether used public or private. As Ansible API documentation is under construction, there is no more information available about APIs.<\/p>\n<blockquote><p>Certification helps the professionals to validate their skills and get global recognition for them. Check out the list of <a href=\"https:\/\/www.whizlabs.com\/blog\/best-devops-certifications\/\" target=\"_blank\" rel=\"noopener noreferrer\">Top DevOps Certifications<\/a> and be determined to get one!<\/p><\/blockquote>\n<h3 class=\"p1\" style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Playbooks_in_Ansible\"><\/span><span class=\"s1\">Playbooks in Ansible<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Now, we shall shed some light on the backbone of ansible, i.e., playbooks. As we know until now, playbooks help in the description of automation jobs, and it uses the very simple YAML. YAML stands for Yet Another Markup Language, and its unique highlight is that it is in human-readable form. Any ansible-playbook tutorial would show that YAML is a data serialization language ideal for configuring files. Let us reflect further on Ansible playbooks to clarify our understanding of Ansible\u2019s working.<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Simply put, playbooks are the files in which you write Ansible code. Playbooks are core features in Ansible and provide information regarding the execution tasks to Ansible. Think of playbooks as a to-do list for Ansible! <\/span><\/p>\n<h4 class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">Playbook structure<\/span><\/h4>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">You can observe details on playbook structure in any ansible-playbook tutorial. The structure of playbook involves many plays. Each play has to serve the function of mapping a set of instructions defined concerning a specific host. Another important concern in playbooks refers to the strict-typed nature of YAML. Even if YAML is in human-readable format, you need to take extra care when writing YAML files. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">You can use a simple editor such as notepad++ as a YAML editor. All you have to do is open notepad++, copy and paste \u201c(Language \u2192 YAML)\u201d YAML for changing the language to YAML. Keep in mind that a YAML always starts with three hyphens (&#8212;). Now, let us take a look at an example of creating a playbook. The following example shows a sample YAML file.<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">--- <\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>name: install and configure DB<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>hosts: testServer<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>become: yes<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>vars: <\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>oracle_db_port_value : 1521<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>tasks:<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>-name: Install the Oracle DB<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>yum: &lt;code to install the DB&gt;<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>-name: Ensure the installed service is enabled and running<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>service:<\/span>\r\n\r\n<span class=\"s1\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>name: &lt;your service name&gt;<\/span><\/pre>\n<h4 class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The Basic Syntax of Ansible Playbook<\/span><\/h4>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The sample playbook shows the basic syntax for a playbook. You have to save the sample playbook with the filename \u2018test.yml.\u2019 A YAML syntax should always follow the appropriate indentation, and you should be additionally careful in writing the syntax. Now, let us describe the important components noted in the above sample playbook. The following elements in this ansible tutorial are also known as YAML tags. The different YAML tags in the example mentioned above are \u2018name,\u2019 \u2018hosts,\u2019 \u2018vars,\u2019 and \u2018tasks.\u2019 A description of the tags can help in improving your knowledge of ansible usage.<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The \u2018name\u2019 YAML tag provides a specification for the name of the Ansible playbook. The \u2018name\u2019 YAML tag describes the work of the playbook. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The \u2018hosts\u2019 YAML tag is also an important requirement playbook description in every ansible tutorial. The \u2018hosts\u2019 tag provides the specification of the lists of hosts or host group which you have to run a task. This is a mandatory field in the playbook as it informs Ansible about the hosts on which it should run listed tasks. You can run tasks on the same machine or a remote machine. You can also run tasks on multiple machines, thereby implying the possibility of a group of hosts entry. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The \u2018vars\u2019 YAML tag in ansible is also an important concern in almost any Ansible tutorial. This YAML tag helps in the definition of the variable for use in a playbook. The use of \u2018vars\u2019 in Ansible resembles variables in the case of any programming language. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The final element in an Ansible playbook refers to \u2018tasks\u2019 YAML tag. This YAML tag is a list of actions that Ansible should perform. The major use of \u2018tasks\u2019 YAML tag is in debugging the playbook.<\/span><\/p>\n<h4><a href=\"https:\/\/www.whizlabs.com\/docker-certified-associate\/practice-tests\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-72446 size-full\" src=\"https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/08\/docker-leaderboard.jpg\" alt=\"Docker Practice Tests\" width=\"728\" height=\"90\" srcset=\"https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/08\/docker-leaderboard.jpg 728w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/08\/docker-leaderboard-300x37.jpg 300w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/08\/docker-leaderboard-640x79.jpg 640w, https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/08\/docker-leaderboard-681x84.jpg 681w\" sizes=\"(max-width: 728px) 100vw, 728px\" \/><\/a><\/h4>\n<h3 class=\"p1\" style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Final_Words\"><\/span><span class=\"s1\">Final Words<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">On a concluding note to this Ansible tutorial, let us reflect on the future that Ansible holds for IT automation. For one mention, Ansible is a definite improvement over other configuration management systems. We can note that Ansible is agentless as you can install ansible only on the control machine. SSH can take care of connecting remote machines for you. <\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><span class=\"s1\">The thorough and simple documentation of Ansible is a formidable mention among ansible advantages. This can promote Ansible adoption, won\u2019t it? An open-source instrument with a human-readable language, i.e., YAML can also appeal to many users in the automation landscape. So, if you have developed an interest in ansible recently, then you have a long way to go! This discussion can serve as a helpful guide for your ansible journey.<\/span><\/p>\n<p style=\"text-align: justify;\">In <a href=\"https:\/\/www.whizlabs.com\/blog\/devops-introduction\/\" target=\"_blank\" rel=\"noopener noreferrer\">DevOps<\/a>, the task of development and operations is integrated, which is very important for designing test-driven applications. Ansible provides a stable environment for development and operation for integration and thus, results in smooth orchestration. So, if you are a DevOps professional, start learning Ansible now! You can also check out our <a href=\"https:\/\/www.whizlabs.com\/devops-certifications\/\" target=\"_blank\" rel=\"noopener noreferrer\">DevOps certification training courses<\/a> if you are preparing for any DevOps certification like; <a href=\"https:\/\/www.whizlabs.com\/aws-certifications\/\" target=\"_blank\" rel=\"noopener\">A<\/a><span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;azure devops certification&quot;}\">zure DevOps Certification or <a href=\"https:\/\/www.whizlabs.com\/aws-devops-certification-training\/\" target=\"_blank\" rel=\"noopener\">AWS DevOps Certification<\/a><\/span>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Looking at the present state of affairs, automation is the new trend in every sector. Automation finds prominent applications across different sectors such as advertising, marketing, sales, cloud, social media, and database management. Addressing the trouble of repetitive tasks, automation is here to stay! In this brief ansible tutorial, we shall take a look at one of the popular IT automation engines, i.e. Ansible. The primary task of ansible is configuration management. Ansible best practices make it an ideal alternative for obtaining the desired state in a particular infrastructure with the least human effort. In this article, we shall take [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":72956,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1862],"tags":[2369,2367,2366,2364,2368,3770,2365,2363],"class_list":["post-72954","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-ansible-advantages","tag-ansible-architecture","tag-ansible-documentation","tag-ansible-playbook-tutorial","tag-ansible-usage","tag-azure-devops-certification","tag-how-ansible-works","tag-what-is-ansible"],"uagb_featured_image_src":{"full":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",600,315,false],"thumbnail":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible-150x150.png",150,150,true],"medium":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible-300x158.png",300,158,true],"medium_large":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",600,315,false],"large":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",600,315,false],"1536x1536":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",600,315,false],"2048x2048":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",600,315,false],"profile_24":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",24,13,false],"profile_48":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",48,25,false],"profile_96":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",96,50,false],"profile_150":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",150,79,false],"profile_300":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",300,158,false],"tptn_thumbnail":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible-250x250.png",250,250,true],"web-stories-poster-portrait":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",600,315,false],"web-stories-publisher-logo":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",96,50,false],"web-stories-thumbnail":["https:\/\/www.whizlabs.com\/blog\/wp-content\/uploads\/2019\/09\/introduction_to_ansible.png",150,79,false]},"uagb_author_info":{"display_name":"Dharmalingam N","author_link":"https:\/\/www.whizlabs.com\/blog\/author\/dharmalingam\/"},"uagb_comment_info":107,"uagb_excerpt":"Looking at the present state of affairs, automation is the new trend in every sector. Automation finds prominent applications across different sectors such as advertising, marketing, sales, cloud, social media, and database management. Addressing the trouble of repetitive tasks, automation is here to stay! In this brief ansible tutorial, we shall take a look at&hellip;","_links":{"self":[{"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/posts\/72954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/comments?post=72954"}],"version-history":[{"count":10,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/posts\/72954\/revisions"}],"predecessor-version":[{"id":77591,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/posts\/72954\/revisions\/77591"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/media\/72956"}],"wp:attachment":[{"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/media?parent=72954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/categories?post=72954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.whizlabs.com\/blog\/wp-json\/wp\/v2\/tags?post=72954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}