Install Ansible using Python installation manager pip


What is pip?

pip can be called as preferred installer program. pip is package management used to install software which written in Python.

To know how to install and configure “Ansible” you can refer to the below links.

  1. Install and configure Ansible Automation IT Tool
  2. Install Ansible using Python installation manager pip
  3. How to create a host’s Inventory using Ansible
  4. Managing Groups and User creation using Ansible
  5. Creating Logical volume based file system using Ansible


Before installing with pip let us resolve required dependencies for pip. By installing “python-setuptools” we will get “easy_install”.

# yum install python-setuptools
[root@ansible ~]# yum install python-setuptools 
Resolving Dependencies
--> Running transaction check
---> Package python-setuptools.noarch 0:0.9.8-4.el7 will be installed
--> Processing Dependency: python-backports-ssl_match_hostname for package: python-setuptools-0.9.8-4.el7.noarch
--> Running transaction check
---> Package python-backports-ssl_match_hostname.noarch 0:3.4.0.2-4.el7 will be installed
--> Processing Dependency: python-backports for package: python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch
--> Running transaction check
---> Package python-backports.x86_64 0:1.0-8.el7 will be installed
--> Finished Dependency Resolution Installed:  
python-setuptools.noarch 0:0.9.8-4.el7                                  Dependency Installed:
  python-backports.x86_64 0:1.0-8.el7                                    python-backports-ssl_match_hostname.noarch 0:3.4.0.2-4.el7          Complete!

Now install wit “pip” being root user run the below command to install with “pip”.

# sudo easy_install pip

[root@ansible ~]# sudo easy_install pip
Searching for pip Reading https://pypi.python.org/simple/pip/ Best match: pip 9.0.1 Downloading https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
Processing pip-9.0.1.tar.gz
Writing /tmp/easy_install-m6_rHv/pip-9.0.1/setup.cfg
Running pip-9.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-m6_rHv/pip-9.0.1/egg-dist-tmp-diQmpt
Adding pip 9.0.1 to easy-install.pth file
Installing pip script to /usr/bin
Installing pip2.7 script to /usr/bin
Installing pip2 script to /usr/bin
Installed /usr/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg Processing dependencies for pip Finished processing dependencies for pip
[root@ansible ~]

It’s time to install with “ansible” using pip installer. This will pull the required dependencies to install with “ansible”.

# sudo pip install ansible
# sudo pip install ansible 
Collecting ansible   Downloading ansible-2.4.3.0.tar.gz (6.5MB)     100% |################################| 6.5MB 83kB/s  Collecting jinja2 (from ansible)   Downloading Jinja2-2.10-py2.py3-none-any.whl (126kB)     100% |################################| 133kB 2.6MB/s 
Installing collected packages: MarkupSafe, jinja2, PyYAML, pyasn1, six, pycparser, cffi, bcrypt, idna, enum34, ipaddress, asn1crypto, cryptography, pynacl, paramiko, ansible  
Running setup.py install for MarkupSafe ... done  
Running setup.py install for PyYAML ... done  
Running setup.py install for pycparser ... done  
Running setup.py install for ipaddress ... done  
Running setup.py install for ansible ... done
Successfully installed MarkupSafe-1.0 PyYAML-3.12 ansible-2.4.3.0 asn1crypto-0.24.0 bcrypt-3.1.4 cffi-1.11.5 cryptography-2.1.4 enum34-1.1.6 idna-2.6 ipaddress-1.0.19 jinja2-2.10 paramiko-2.4.0 pyasn1-0.4.2 pycparser-2.18 pynacl-1.2.1 six-1.11.0
[root@ansible ~]


Create an inventory file to start the testing by running a ping test.

[ansible@ansible ~]$ cat hosts
[oel7_prod]
ansiclient1.oel7.local
ansiclient2.oel7.local
ansiclient3.oel7.local
[ansible@ansible ~]$

Run the ansible by pointing to inventory file using “-i”.

Ansible   = command
-i = pointing to inventory file.
-m        = module ping
oel7_prod = group of hosts
[ansible@ansible ~]$ ansible -i hosts -m ping oel7_prod
ansiclient2.oel7.local | SUCCESS => {     "changed": false,      "ping": "pong" }
ansiclient3.oel7.local | SUCCESS => {     "changed": false,      "ping": "pong" }
ansiclient1.oel7.local | SUCCESS => {     "changed": false,      "ping": "pong" }

We have successfully installed ansible using “pip” installer and tested by running a ping over remote servers.

Conclusion:

Pip method of installation is easier to follow and we will get updated packages from pip than installing ansible from yum. Subscribe to our newsletter to keep you updated.

Exit mobile version