How to install Ansible and Use it in Automation
In this artical we will known about how to install Ansible, Before going through that we would known about what is Ansible and what’s the uses of it.ANSIBLE Ansible is a automation tool which is used manage the server(‘s) for you. We just need to configure the Ansible to installing a package or configuring a server application or even restarting a service.But the question is why we need automation tools especially Ansible, the answer is so simple. The maintenance of single server is not always easy, but if we have to manage more than one server, the goes very hard without automation tools. Ansible is agent less which is the major advantage when compared to the other Automation tools like puppet, chef,salt etc. we do not need to have anything installed on the client’s end.In Ansible both push and pull mode are supported. Ansible is a security focused tool it uses Open SSH . Ansible scripts are commonly known as playbooks and they are easy to read.Installation of Ansible Automation Tool On RHEL/CENTOS MachinesTo install Ansible in RHEL/CENTOS, we should install and enable the epel repository by using the following command.root@localhost ~]# yum install epel-releaseThe install the packages python-pip, python-devel and git[root@localhost ~]# yum install python-pip python-devel gitAfter the completion of these packages install Ansible Package as follows[root@localhost ~]# yum install ansibleotherwise you can also install by using pip command as follows[root@localhost ~]#pip install ansibleTo install in fedora just replace yum with dnf, even yum also work fine with fedora.check the version ansible by using the command –versionInventory FileAnsible works against multiple systems in your infrastructure at the same time. It does this by selecting portions of systems listed in Ansible’s inventory file, which defaults to being saved in the location /etc/ansible/hosts.The format for /etc/ansible/hosts is as followsA group can have multiple server and one server can be a part of multiple groups. Name of group is enclosed in square brackets . Server names can be their dns names or ip addresses.Here i used the servers 10.0.0.6 and 10.10.16.137.[Web Servers] 10.0.0.6 10.10.16.137SSH-keygen and SSH-copy-id To run any module or playbook from local host to remote host, we need to create and copy ssh keys to remote hosts by using ssh-keygen and ssh-copy-id.First we create ssh key by usng ssh-keygen commandThen copy the ssh key to remote host by using ssh-copy-id command.[root@localhost ~]# ssh-copy-id firstname.lastname@example.org /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys email@example.com's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'firstname.lastname@example.org'" and check to make sure that only the key(s) you wanted were added. [root@localhost ~]# ssh-copy-id email@example.com /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys firstname.lastname@example.org's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'email@example.com'" and check to make sure that only the key(s) you wanted were added.Ansible Modules Ansible ships with a number of modules (called the ‘module library’) that can be executed directly on remote hosts or through Playbooks.Users can also write their own modules. These modules can control system resources, like services, packages, or files (anything really), or handle executing system commands.We can ping all the hosts in Inventory file by using the following commandwe can also run the command in all remote hosts or particular group in inventory file by using ansibleHere i run the command module ls, it lists out all the files in remote hosts home directory.we can also know the host name, up time, who logged in remote hosts as follows.Ansible Playbooks Playbooks are Ansible configuration,deployment of policies we want to apply or enforce in the remote hosts they are in YAML begins with “–“. It consists of a listing of modules and the arguments.Example:--- hosts: localhost - name: install pip yum: pkg=python-pip state=installedThe above code will install package pip in remote hosts. we will cover in detail about Ansible playbooks in next artical.The post How to install Ansible and Use it in Automation appeared first on Unixmen.