Ansible es una herramienta de automatización y administración de configuración gratuita y de código abierto que se utiliza para administrar cientos y miles de servidores desde una ubicación central.
Ansible AWX es un proyecto de código abierto, patrocinado por Red Hat, que lo ayuda a controlar Ansible en entornos de TI. Proporciona una API REST de interfaz basada en web y un motor de tareas para Ansible. Puede administrar libros de jugadas, secretos, inventarios y trabajos cron mediante la interfaz basada en web de AWX.
En este tutorial, le mostraremos cómo instalar Ansible AWX con Docker en Debian 10.
Requisitos
- Un nuevo Debian 10 VPS en la plataforma en la nube de Atlantic.net
- Una contraseña de root configurada en su servidor
Paso 1:crear un servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Debian 10 como sistema operativo, con al menos 4 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Debian 10, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar Docker
Primero, deberá instalar Docker y Docker compose en su sistema. De forma predeterminada, la última versión de Docker no está disponible en el repositorio estándar de Debian, por lo que deberá agregar el repositorio de Docker a su sistema.
Instale las dependencias requeridas con el siguiente comando:
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
A continuación, descargue y agregue la clave GPG de Docker con el siguiente comando:
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
A continuación, agregue el repositorio de Docker con el siguiente comando:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
A continuación, actualice el repositorio de Docker e instale Docker con Docker compose usando el siguiente comando:
apt-get update -y apt-get install docker-ce docker-compose -y
Una vez que ambos paquetes estén instalados, verifique la versión instalada de Docker con el siguiente comando:
docker --version
Deberías obtener el siguiente resultado:
Docker version 19.03.13, build 4484c46d9d
Paso 2:instalar Ansible
AWX está integrado en la parte superior de Ansible. por lo que deberá instalar Ansible en su sistema.
Primero, agregue el repositorio de Ansible con el siguiente comando:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list
A continuación, actualice el repositorio e instale Ansible con el siguiente comando:
apt-get update -y apt-get install ansible -y
Una vez que Ansible esté instalado, verifique la versión instalada de Ansible con el siguiente comando:
ansible --version
Deberías obtener el siguiente resultado:
ansible 2.9.13 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]
Paso 3:instalar Node.js y la biblioteca de Python
Primero, instale Node.js, NPM y Git con el siguiente comando:
apt-get install nodejs npm git -y npm install npm --global
A continuación, instale el módulo de Python para Docker y otras dependencias requeridas con el siguiente comando:
apt-get install python3-pip pwgen python3-docker -y pip3 install requests==2.14.2
A continuación, actualice la versión predeterminada de Python con el siguiente comando:
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 update-alternatives --install /usr/bin/python python /usr/bin/python3 2
A continuación, deberá instalar el módulo Docker Compose Python en su sistema.
Primero, verifique la versión instalada de Docker compose con el siguiente comando:
docker-compose version
Deberías obtener el siguiente resultado:
docker-compose version 1.21.0, build unknown docker-py version: 3.4.1 CPython version: 3.7.3 OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
A continuación, instaló la versión correspondiente del módulo Docker Compose Python con el siguiente comando:
pip3 install docker-compose==1.21.0
Paso 4:Instale Ansible AWX
Primero, descargue la última versión de la fuente AWX del repositorio de Git usando el siguiente comando:
git clone --depth 50 https://github.com/ansible/awx.git
Una vez descargado, cambie el directorio a awx y genere la clave secreta con el siguiente comando:
cd awx/installer/ pwgen -N 1 -s 30
Deberías obtener el siguiente resultado:
4NaNkNcMBOj4Jxp4fWi91mymuW9TbR
A continuación, cree un nuevo archivo de inventario con el siguiente comando:
nano inventory
Agregue las siguientes líneas, incluidos el usuario administrador, la contraseña, la clave secreta, el puerto y el nombre de host, como se muestra a continuación:
dockerhub_base=ansible awx_task_hostname=awx awx_web_hostname=awxweb postgres_data_dir=/tmp/pgdocker host_port=80 host_port_ssl=443 docker_compose_dir=/tmp/awxcompose pg_username=awx pg_password=awxpass pg_database=awx pg_port=5432 admin_user=admin admin_password=adminpassword create_preload_data=True secret_key=2fCkx2K5GnIjBz4OterhOC3ey0WPdj
Guarde y cierre el archivo cuando haya terminado.
A continuación, ejecute el manual para instalar Ansible AWX con el siguiente comando:
ansible-playbook -i inventory install.yml
Una vez que se haya instalado Ansible AWX, debería obtener el siguiente resultado:
TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item={u'mode': u'0600', u'file': u'environment.sh'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'credentials.py'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'docker-compose.yml'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'nginx.conf'}) changed: [localhost] => (item={u'mode': u'0664', u'file': u'redis.conf'}) TASK [local_docker : Render SECRET_KEY file] ************************************************************************************************** changed: [localhost] TASK [local_docker : Start the containers] **************************************************************************************************** changed: [localhost] TASK [local_docker : Update CA trust in awx_web container] ************************************************************************************ changed: [localhost] TASK [local_docker : Update CA trust in awx_task container] *********************************************************************************** changed: [localhost] PLAY RECAP ************************************************************************************************************************************ localhost : ok=15 changed=7 unreachable=0 failed=0 skipped=86 rescued=0 ignored=0
A continuación, puede verificar la lista de contenedores en ejecución con el siguiente comando:
docker ps
Deberías obtener el siguiente resultado:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 167d008ee26f ansible/awx:14.1.0 "/usr/bin/tini -- /u…" About a minute ago Up About a minute 8052/tcp awx_task 260c028bf07d ansible/awx:14.1.0 "/usr/bin/tini -- /b…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web e15d5ee1c940 postgres:10 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp awx_postgres 6472ee690066 redis "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp awx_redis
Paso 5:acceda al panel de Ansible AWX
Ahora, abra su navegador web y acceda al panel de Ansible AWX usando la URL http://your-server-ip . Será redirigido a la página de inicio de sesión de AWX:
Proporcione su nombre de usuario y contraseña de administrador que ha definido en el archivo de inventario y haga clic en FIRMAR EN botón. Debería ver el panel de Ansible AWX en la siguiente página:
Conclusión
¡Felicidades! Ha instalado correctamente Ansible AWX con Docker en Debian 10. Ahora puede controlar fácilmente el inventario, los secretos, los libros de jugadas y más de Ansible desde el panel de control de AWX; ¡Pruébelo ahora en VPS Hosting de Atlantic.Net!