Itential Ansible Manager

On this page:

Installation

This guide provides step-by-step information to install and configure Itential Ansible Manager.

Note: The Itential Automation Platform (IAP) is compatible with several third-party software products for network operating environments. Beginning with the system requirements for 2018.3.11, all third-party software version compatibility is documented in Release Notes. To get the most up-to-date requirements for any third-party software, including open source, first identify which IAP release you’re using and then refer to the respective release note.

Install Software

Itential Ansible Manager resides on the same server as your Ansible implementation. If you have multiple Ansible implementations, you must install Ansible Manager for each Ansible implementation. Optionally, Itential adapters will connect into each Ansible Manager installation to manage all of your Ansible networks from a single point within the Itential Automation Platform (IAP).

Requirements

  • Redhat 7
  • CentOS 7
  • Fedora Linux
  • Python 3.6.x or greater
  • pipenv (packaging tool for Python)
  • YAML parsing (installed)

Virtual Machine

For purposes of this guide, Itential Ansible Manager was installed on top of a virtual machine.

  • CentOS 7.4 (minimal)

Repositories

The following repositories were used.

  • epel-release
  • ius-release
  • Itential pip registry

Note: The index to the Itential pip registry is located at https://registry.aws.itential.com/repository/ansible-manager/simple. To obtain credentials for the Itential pip registry, contact the Itential Service Desk.

OS Prerequisites

The use of python and pip requires installation of build tools available from the base OS repository. Install the following packages on your server.

sudo yum install -y gcc-c++ make yaml-cpp yaml-cpp-devel libyaml libyaml-devel libselinux-python

Install Ansible

Both Ansible and python can be installed in a variety of ways. For purposes of this guide, we installed the python-pip package from the epel registry, and Ansible from the pip registry. You can use the mechanism of your choice to install Ansible and python.

sudo yum install -y epel-release

Optionally, install all available updates to your system.

sudo yum update -y

Install the pip and yaml-cpp packages from the epel registry.

sudo yum install -y python-pip

Optionally, update to the latest pip version.

sudo pip install --upgrade pip

Install Ansible 2.6.x using pip; Ansible 2.6.5 will be used for demonstration. For the most up-to-date version, refer to the respective release note.

sudo pip install ansible==2.6.5

Output

Successfully installed MarkupSafe-1.0 PyYAML-3.13 ansible-2.6.5 asn1crypto-0.24.0 bcrypt-3.1.4 cffi-1.11.5 cryptography-2.3.1 enum34-1.1.6 idna-2.7 jinja2-2.10 paramiko-2.4.2 pyasn1-0.4.4 pycparser-2.19 pynacl-1.3.0 six-1.11.

The python-devel and psutil packages should be installed after Ansible.

sudo yum install python-devel
sudo pip2 install psutil

Note: The psutil package should be installed using the same PIP that Ansible uses (either pip2 or pip3), depending on your environment.

Install Python 3

Itential Ansible Manager requires python version 3.6 to run. For purposes of this guide, we installed python 3.6 from the ius-release registry. You can use the mechanism of your choice to install python 3.6.

sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm

Optionally, install all available updates to your system.

sudo yum update -y

Install python 3.6 and related packages.

sudo yum install -y python36u python36u-libs python36u-devel python36u-pip yaml-cpp

Optionally, update to the latest pip version.

sudo pip3.6 install --upgrade pip poetry

Output

Successfully installed pip-18.1 poetry

Install HA-Proxy

Itential Ansible Manager uses haproxy to support HTTPS security requirements.

sudo yum install -y haproxy

Verify Install of Prerequisites

Run the following commands to verify the above prerequisites were installed correctly.

sudo pip3 show poetry

Output

Name: poetry
Version: 0.12.6
Summary: Python dependency management and packaging made easy.
Home-page: https://poetry.eustace.io/
Author: Sébastien Eustace
Author-email: sebastien@eustace.io
License: MIT Location: /usr/lib/python3.6/site-packages
Requires: cachy, requests, shellingham, cleo, cachecontrol, pkginfo, jsonschema, pyparsing, requests-toolbelt, html5lib, tomlkit, pyrsistent Required-by:
$ sudo pip3 show pip
Name: pip
Version: 18.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /usr/lib/python3.6/site-packages
Requires:
Required-by:
$ yum info python-devel
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirror.team-cymru.com
* epel: mirror.steadfastnet.com
* extras: mirror.genesishosting.com
* ius: archive.linux.duke.edu
* updates: mirrors.centos.webair.com epel

12744/12744
Installed Packages
Name : python-devel
Arch : x86_64
Version : 2.7.5
Release : 76.el7
Size : 1.1 M
Repo : installed
From repo : base
Summary : The libraries and header files needed for Python development
URL : http://www.python.org/
License : Python
Description :
The Python programming language's interpreter can be extended with : dynamically loaded extensions and can be embedded in other programs. This package contains the header files and libraries needed to do these types of tasks. Install python-devel if you want to develop Python extensions. The python package will also need to be installed. You'll probably also want to install the python-docs package, which contains Python documentation.
$ ansible --version
ansible 2.6.5
config file = None
configured module search path = [u'/home/jondoe/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
$ pip2 show psutil
Name: psutil
Version: 5.4.8
Summary: Cross-platform lib for process and system monitoring in Python. Home-page: https://github.com/giampaolo/psutil
Author: Giampaolo Rodola
Author-email: g.rodola@gmail.com
License: BSD
Location: /usr/lib64/python2.7/site-packages
Requires:
Required-by:

Install Ansible Manager Using PIP

Install the Itential Ansible Manager component from the Itential pip registry. The latest version must be specified.

Note: For 2018.3, the version will only increment the very last digit of the version below. Please modify the command below to match the appropriate released version that you are attempting to install.

sudo pip3.6 install ansible-manager==1.2.6+2018.3.15 --extra-index-url https://registry.aws.itential.com/repository/ansible-manager/simple

Where Ansible Manager Gets Installed

As a python 3 application, Ansible Manager is installed within /usr/lib/python3.6/site-packages/ansible_manager.

  • Files within this directory structure should not be modified or manipulated without first moving your required roles to the default location for Ansible roles.
  • Any updates made to Ansible Manager will overwrite the files within this directory.
$ cd /usr/lib/python3.6/site-packages/ansible_manager
$ ll
total 120
drwxr-xr-x. 10 root root 4096 Nov 10 01:38 .
drwxr-xr-x. 75 root root 4096 Nov 10 01:38 ..
-rw-r--r--.  1 root root 1172 Nov 10 01:38 ansible_info.pyc
drwxr-xr-x.  3 root root 4096 Nov 10 01:38 api
-rw-r--r--.  1 root root  895 Nov 10 01:38 argument_helper.pyc
-rw-r--r--.  1 root root 2120 Nov 10 01:38 authentication.pyc
-rw-r--r--.  1 root root 1609 Nov 10 01:38 cli.pyc
-rw-r--r--.  1 root root 2555 Nov 10 01:38 config.pyc
drwxr-xr-x.  3 root root  210 Nov 10 01:38 data
-rw-r--r--.  1 root root 2595 Nov 10 01:38 device.pyc
-rw-r--r--.  1 root root 1521 Nov 10 01:38 Errors.pyc
-rw-r--r--.  1 root root 3511 Nov 10 01:38 groups.pyc
-rw-r--r--.  1 root root   25 Nov 10 01:38 __init__.py
-rw-r--r--.  1 root root  136 Nov 10 01:38 __init__.pyc
drwxr-xr-x.  3 root root   19 Nov 10 01:38 integrations
drwxr-xr-x.  4 root root   34 Nov 10 01:38 metadata
-rw-r--r--.  1 root root  679 Nov 10 01:38 metadata_loader.pyc
-rw-r--r--.  1 root root 5634 Nov 10 01:38 modules.pyc
-rw-r--r--.  1 root root  515 Nov 10 01:38 password_helper.pyc
-rw-r--r--.  1 root root 3587 Nov 10 01:38 playbooks.pyc
-rw-r--r--.  1 root root 1875 Nov 10 01:38 properties.yml
drwxr-xr-x.  2 root root   63 Nov 10 01:38 __pycache__
-rw-r--r--.  1 root root 4432 Nov 10 01:38 roles.pyc
-rw-r--r--.  1 root root 7516 Nov 10 01:38 runner.pyc
drwxr-xr-x.  2 root root   87 Nov 10 01:38 schema
-rw-r--r--.  1 root root 5197 Nov 10 01:38 schema.pyc
-rw-r--r--.  1 root root 2427 Nov 10 01:38 sessions.pyc
drwxr-xr-x.  6 root root   51 Nov 10 01:38 static
drwxr-xr-x.  2 root root   38 Nov 10 01:38 swagger
-rw-r--r--.  1 root root  938 Nov 10 01:38 telegraph.pyc
-rw-r--r--.  1 root root  419 Nov 10 01:38 token_builder.pyc
-rw-r--r--.  1 root root 1943 Nov 10 01:38 user_schema.pyc
-rw-r--r--.  1 root root 1475 Nov 10 01:38 web_app.pyc