Ansible Tower (formerly ‘AWX’) is a web-based solution that makes Ansible even more easy to use for IT teams of all kinds. It’s designed to be the hub for all of your automation tasks.
In this tutorial, you’ll learn how to install and use it on an existing installation of CentOS 7. 64-bit CentOS 7 Droplet; Non-root user with sudo privileges. A CentOS 7 server set up using Initial Setup Guide for CentOS 7 explains how to set this up. Main advantage of PHP 7.x is that it will load your web application faster and will consume less server’s resources like CPU and RAM. By default, PHP 5.4 is available in CentOS 7 and RHEL 7 yum repositories. In this article we will demonstrate how to install latest version of PHP on CentOS 7 and RHEL 7 Servers.
Tower allows you to control access to who can access what, even allowing sharing of SSH credentials without someone being able to transfer those credentials. Inventory can be graphically managed or synced with a wide variety of cloud sources. It logs all of your jobs, integrates well with LDAP, and has an amazing browsable REST API. Command line tools are available for easy integration with Jenkins as well. Provisioning callbacks provide great support for autoscaling topologies.
AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is the upstream project for Tower, a commercial derivative of AWX.
Prerequisites
Before you can run a deployment, you’ll need the following installed in your local environment:
- Ansible Requires Version 2.8+
- Docker
- A recent version
- docker Python module
- This is incompatible with
docker-py
. If you have previously installeddocker-py
, please uninstall it. - We use this module instead of
docker-py
because it is what thedocker-compose
Python module requires.
- This is incompatible with
- Git Requires Version 1.8.4+
- Python 3.6+
- Node 10.x LTS version
- This is only required if you’re building your own container images with
use_container_for_build=false
- This is only required if you’re building your own container images with
- NPM 6.x LTS
- This is only required if you’re building your own container images with
use_container_for_build=false
- This is only required if you’re building your own container images with
System Requirements
The system that runs the AWX service will need to satisfy the following requirements
- At least 4GB of memory
- At least 2 cpu cores
- At least 20GB of space
- Running Docker, Openshift, or Kubernetes
- If you choose to use an external PostgreSQL database, please note that the minimum version is 10+.
Installation steps:
1. Install Dependencies
yum install -y epel-release
yum remove python-docker-py
yum install -y yum-utils device-mapper-persistent-data lvm2 ansible git python-devel python-pip python-docker-py vim-enhanced
pip install cryptography
pip install jsonschema
pip install docker-compose~=1.23.0
pip install docker –upgrade
2. Install docker
Configure docker ce stable repository.
Install Docker-engine Centos 7
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Installing docker.
yum install docker-ce -y
Start docker service.
systemctl start docker
Enable docker service.
systemctl enable docker
3. Deploy AWX
Clone AWX repo
git clone https://github.com/ansible/awx.git
Clone commercial logos
cd awx/
git clone https://github.com/ansible/awx-logos.git
Configure AWX
cd installer/
$ vim inventory
awx_official=true
Deploy AWX
ansible-playbook -i inventory install.yml -vv
Check the status
docker ps -a
AWX is ready and can be accessed from the browser.
http://ipaddress:80/
the default username is “admin” and the password is “password”.
Final checks:
Install Docker Engine Centos 7
- verify whether the service is started or not with
ss -tlnp | grep 80
- make sure your firewall is open for port 80
- make sure your OS is using python 3.6+ and pip3
https://github.com/ansible/awx/blob/devel/INSTALL.md