Docker Swarm: Instalar Ansible AWX
Hoy os vamos a enseñar otro proyecto open source de automatización, Ansible AWX.
Comentar que Ansible AWX es la versión gratuita de Red Hat Ansible Tower.
Para los que no os suene, AWX es un proyecto que nos permite administrar proyectos de Ansible de una forma gráfica. AWX se aloja en GitHub y proporciona una interfaz de usuario basada en la web, REST API, y un motor de tareas para Ansible.
WEBS PROYECTO OFICIAL:
PROYECTOS QUE PODEIS USAR (yo lo haré con el segundo):
Teniendo esta pequeña pincelada, vamos a implementarlo en contenedores, bajo una infraestructura Docker Swarm con Debian.
Os explico mi laboratorio de Docker Swarm con un par de comandos. Os enseño los nodos y la versión de Docker que voy a utilizar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
root@swarm00:~# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION wtxqaii96t7ofy2d6ep9wnf4l * swarm00 Ready Active Leader 20.10.5 q1l6gkm5ec78q155duyzwzt6o swarm01 Ready Active Reachable 20.10.5 g2plw1serfi4psvls8szdofo0 swarmn01 Ready Active 20.10.5 1iy0jshekp2qgepehkn10r3rh swarmn02 Ready Active 20.10.5 root@swarm00:~# docker version Client: Docker Engine - Community Version: 20.10.5 API version: 1.41 Go version: go1.13.15 Git commit: 55c4c88 Built: Tue Mar 2 20:17:50 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:15:47 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.4 GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e runc: Version: 1.0.0-rc93 GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec docker-init: Version: 0.19.0 GitCommit: de40ad0 |
Bajamos el repositorio generando una carpeta para los ficheros:
1 2 3 4 5 |
root@swarm00:~/awx# git clone https://github.com/tomwillfixit/awx-on-swarm.git Clonando en 'awx-on-swarm'... remote: Enumerating objects: 30, done. remote: Total 30 (delta 0), reused 0 (delta 0), pack-reused 30 Desempaquetando objetos: 100% (30/30), listo. |
Cambiamos al repo y primero lanzaremos la creación de postgres:
1 2 |
root@swarm00:~/awx# cd awx-on-swarm/ root@swarm00:~/awx/awx-on-swarm# docker stack deploy -c ./postgres.yml awx |
Ahora la red y el servicio para el proyecto:
1 2 3 |
root@swarm00:~/awx/awx-on-swarm# docker stack deploy -c ./postgres.yml awx Creating network awx_network Creating service awx_postgres |
Comprobamos el servicio:
1 2 3 4 |
root@swarm00:~/awx/awx-on-swarm# docker stack ls NAME SERVICES ORCHESTRATOR awx 1 Swarm portainer-agent 1 Swarm |
Verificar que todo está en orden:
1 2 3 4 5 6 7 8 9 |
root@swarm00:~/awx/awx-on-swarm# docker service ls ID NAME MODE REPLICAS IMAGE PORTS yym3xkhm0fmt awx_postgres replicated 1/1 postgres:9.6 cl9ivn3ji4la portainer-agent_agent global 4/4 portainer/agent:latest i887b020lbkw viz replicated 2/2 dockersamples/visualizer:latest *:8080->8080/tcp root@swarm00:~/awx/awx-on-swarm# docker stack ps awx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS w4urgv4pg3dj awx_postgres.1 postgres:9.6 swarmn02 Running Running about a minute ago |
Y creamos los servicios restantes:
1 2 3 4 5 |
root@swarm00:~/awx/awx-on-swarm# docker stack deploy -c ./awx.yml awx Creating service awx_awx Creating service awx_awx_web Creating service awx_rabbitmq Creating service awx_memcached |
Y verificamos que el dashboard está arrancado, en este caso puerto 80 (el usuario es “admin” y la contraseña “password”):
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?