Como instalar o Ansible AWX no Ubuntu Bionic
O Ansible AWX, surgiu com objetivo de facilitar o gerenciamento dos projects criados no ansible, uma vez que somente com o ansible não era possível obter logs das tasks executadas, criação schedules e etc. Sendo assim, a Red Hat decidiu distribuir para a comunidade AWX, considerado um upstream do Tower. O AWX possui um dashboard amigável, onde é possível criar projects, teams, users, gerenciar os jobs, notificação, schedules e etc.
Com esse breve resumo, mostraremos os procedimentos para instalação do Ansible AWX no Ubuntu Bionic em containers Docker.
Pré-requisitos
- Ansible Version 2.4+
- Docker e docker-py
- GNU MAKE,
- Git
- Node 8.x e NPM 6.x.
Instalando o Docker e Docker compose
Em primeiro lugar, é necessário fazer a instalação dos pacotes que permite o apt usar repositório https:
sudo apt install \ apt-transport-https \ ca-certificates \ curl gnupg-agent\ software-properties-common -y
Em seguida, adicione GPG Key Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Habilite o repositório stable:
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Por último, instale o docker e docker-compose:
sudo apt install docker-ce docker-ce-cli containerd.io -y
Instalando o python-pip e python docker
Para fazer a instalação do python-pip e docker-py execute os comandos abaixo:
sudo apt install python-pip -y sudo pip install docker
Instalando o node NPM
Para fazer a instalação do NPM execute os comandos abaixo:
sudo apt install nodejs npm -y sudo npm install npm --global
Instalando o Ansible AWX
Crie um diretório no /opt com o nome ansible-awx e faça o git clone nele:
sudo mkdir /opt/ansible-awx;cd /opt/ansible-awx
Em seguida, execute o git clone dentro do /opt/ansible-awx:
sudo git clone https://github.com/ansible/awx.git
Dentro do diretório, execute o comando cd para acessar o diretório installer:
cd /opt/ansible-awx/awx/installer
Para ter acesso ao docker-compose e poder executar restart dos containers é necessário fazer algumas alterações. Em primeiro lugar, dentro do installe acesse o arquivo inventory e descomente o use_docker_compose=true. Conforme o exemplo abaixo:
sudo vim /opt/ansible-awx/awx/installer/inventory # Docker Compose Install use_docker_compose=true # The docker_compose.yml file will be created in this directory # The name of the directory (here "awx") will be the prefix of the docker containers docker_compose_dir=/var/lib/awx
OBs: O diretório onde será disponibilizado o docker-compose será no /var/lib/awx, esse parâmetro pode ser alterado.
Outra maneira de obter o docker-compose é declarando no ansible-playbook com o parâmetro “-e” , conforme no exemplo abaixo:
sudo ansible-playbook -e use_docker_compose=true -i inventory install.yml
Aguarde alguns minutos para o ansible terminar a execução do playbook.
Ao término da execução, será criado 5 containers dockers, para visualizá-los execute o comando docker container ps:
sudo docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b47c323bec3 ansible/awx_task:3.0.0 "/tini -- /bin/sh -c…" 14 minutes ago Up 13 minutes 8052/tcp awx_task b6909f8353cd ansible/awx_web:3.0.0 "/tini -- /bin/sh -c…" 14 minutes ago Up 14 minutes 0.0.0.0:80->8052/tcp awx_web 59cfa4a76b54 memcached:alpine "docker-entrypoint.s…" 17 minutes ago Up 17 minutes 11211/tcp memcached b4ac74cd72ff ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" 17 minutes ago Up 17 minutes 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp rabbitmq fb1f9d3d0fd9 postgres:9.6 "docker-entrypoint.s…" 18 minutes ago Up 18 minutes 5432/tcp postgres
E o docker-compose será disponibilizado no /var/lib/awx:
ls -lh /var/lib/awx -rw-r--r-- 1 root root 1.9K Feb 6 18:34 docker-compose.yml
Para acompanhar o setup de configuração, migração da database e logs execute docker logs -f awx_task:
sudo docker logs -f awx_task
A saída do comando será igual a esta:
.... Running migrations: Rendering model states... DONE Applying contenttypes.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0001_initial... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK
Acessando o AWX
Ao término acesse via browser o AWX através a URL: http://localhost, com o usuário admin e senha password.
Em seguida você será redirecionada para a tela abaixo:
Criamos um script para automatizar a instalação do Ansible AWX no ubuntu, execute o comando abaixo para fazer o download:
wget https://raw.githubusercontent.com/bezarsnba/scripts/master/install-ansibleawx.sh chmod +x install-ansibleawx.sh sudo ./install-ansibleawx.sh