Avís
Aquest article és antic i és possible que part de la informació estigui desactualitzada o ja no sigui vàlida actualment.
Si tens qualsevol dubte o necessites confirmar algun detall, et recomanem contactar amb el nostre equip de suport per rebre informació actualitzada i assistència personalitzada.
Ansible AWX és una versió gratuïta i de codi obert de la base de codi Ansible Tower que es pot fer servir per administrar les guies i els inventaris d'Ansible i per programar treballs. AWX també és un projecte comunitari de Red Hat, que et permet controlar els teus projectes d'Ansible en entorns de TI. Proporciona una interfície web que et permet administrar totes les seves tasques d'automatització des de la ubicació central. Amb aquesta eina, pots configurar servidors en infraestructures locals i remotes. També et permet fer altres tasques, com ara canviar la configuració de l'aplicació, iniciar i aturar serveis i instal·lar/actualitzar aplicacions.
En aquest tutorial, t'expliquem pas a pas com instal·lar Ansible AWX amb Nginx com a servidor intermediari invers en un servidor Ubuntu 18.04.
Requisits
- Un servidor al núvol que executi Ubuntu 18.04.
- Un nom de domini vàlid configurat al teu servidor.
- Una contrasenya root al teu servidor.
Comencem
Abans de començar, és recomanable que actualitzis el teu servidor a l'última versió. Pots fer-ho amb l'ordre següent:
# apt-get update -y
# apt-get upgrade -yUn cop el teu servidor estigui actualitzat, reinicia'l per aplicar tots els canvis.
Instal·lar Docker i Ansible
A continuació, hauràs d'instal·lar Docker i Ansible al teu servidor al núvol. Per defecte, l'última versió de Docker no està disponible al repositori d'Ubuntu 18.04, de manera que hauràs d'afegir el repositori de Docker al teu servidor VPS al núvol.
Primer, descarrega i afegeix la clau Docker CE GPG amb l'ordre següent:
# wget https://download.docker.com/linux/ubuntu/gpg
# apt-key add gpgA continuació, afegeix el repositori CE de Docker a APT amb l'ordre següent:
# nano /etc/apt/sources.list.d/docker.listDesprés, afegeix la línia següent:
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stableDesa i tanca el fitxer quan hagis acabat.
Després, actualitza el repositori i instal·la Docker amb l'ordre següent:
# apt-get update -y
# apt-get install docker-ce ansible -yUn cop s'hagi completat la instal·lació, pots comprovar l'estat de Docker amb l'ordre següent:
# systemctl status dockerHauries de veure el resultat següent:
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2019-06-14 07:21:01 CDT; 1min 48s ago Docs:
https://docs.docker.com Main PID: 2002 (dockerd) Tasks: 10 Memory: 28.3M CGroup: /system.slice/docker.service └─2002 /usr/bin/dockerd -H fd:// --containerd=/run/containerd
/containerd.sock Jun 14 07:20:59 hitesh.rosehostingtest.com dockerd[2002]: time="2019-06-14T07:20:59.845688014-05:00" level=info msg="pickfirstBalancer...e=grpc Jun 14 07:20:59
hitesh.rosehostingtest.com dockerd[2002]: time="2019-06-14T07:20:59.846116992-05:00" level=info msg="pickfirstBalancer...e=grpc Jun 14 07:21:00 hitesh.rosehostingtest.com
dockerd[2002]: time="2019-06-14T07:21:00.132179383-05:00" level=info msg="Graph migration t...conds" Jun 14 07:21:00 hitesh.rosehostingtest.com dockerd[2002]:
time="2019-06-14T07:21:00.133144229-05:00" level=info msg="Loading container...tart." Jun 14 07:21:01 hitesh.rosehostingtest.com dockerd[2002]:
time="2019-06-14T07:21:01.135427275-05:00" level=info msg="Default bridge (d...dress" Jun 14 07:21:01 hitesh.rosehostingtest.com dockerd[2002]:
time="2019-06-14T07:21:01.475398667-05:00" level=info msg="Loading containers: done." Jun 14 07:21:01 hitesh.rosehostingtest.com dockerd[2002]:
time="2019-06-14T07:21:01.710333840-05:00" level=info msg="Docker daemon" co...8.09.6 Jun 14 07:21:01 hitesh.rosehostingtest.com dockerd[2002]:
time="2019-06-14T07:21:01.710574644-05:00" level=info msg="Daemon has comple...ation" Jun 14 07:21:01 hitesh.rosehostingtest.com systemd[1]: Started Docker Application Container
Engine. Jun 14 07:21:01 hitesh.rosehostingtest.com dockerd[2002]: time="2019-06-14T07:21:01.910369983-05:00" level=info msg="API listen on /va....sock"Instal·lar les dependències necessàries
A continuació, hauràs d'instal·lar algunes dependències necessàries com ara Python pip, nodejs, npm i docker-compose al teu servidor al núvol a Espanya.
Primer, instal·la nodejs npm python-pip amb l'ordre següent:
# apt-get install python-pip nodejs npm -yA continuació, actualitza npm a l'última versió amb l'ordre següent:
# npm install npm --globalA continuació, instal·la docker-compose i docker-py amb l'ordre següent:
# pip install docker-compose==1.9.0
# pip install docker-pyUn cop fet això, s'instal·laran totes les dependències. Ja pots passar al pas següent.
Descarregar i instal·lar AWX
A continuació, hauràs de descarregar l'última versió d'AWX des del repositori de Git. Pots descarregar-la amb l'ordre següent:
# git clone --depth 50 https://github.com/ansible/awx.gitHauries de veure el resultat següent:
Cloning into 'awx'...
remote: Enumerating objects: 9487, done.
remote: Counting objects: 100% (9487/9487), done.
remote: Compressing objects: 100% (4466/4466), done.
remote: Total 9487 (delta 5863), reused 7053 (delta 4875), pack-reused 0
Receiving objects: 100% (9487/9487), 12.25 MiB | 8.50 MiB/s, done.
Resolving deltas: 100% (5863/5863), done.A continuació, hauràs de generar una clau secreta per a AWX. Pots fer-ho amb l'ordre següent:
# pwgen -N 1 -s 30De nou, hauries de veure el resultat següent:
1UUkn843KRGNOsoVvX5cEu7xtw8frxDesprés, canvia el directori cd awx/installer i modifica el fitxer d'inventari:
# cd awx/installer/
# nano inventoryFes els canvis següents:
postgres_data_dir=/var/lib/pgdocker
use_docker_compose=true
docker_compose_dir=/var/lib/awx
admin_user=admin
admin_password=awxpasswd
secret_key=1UUkn843KRGNOsoVvX5cEu7xtw8frx
project_data_dir=/var/lib/awx/projects
host_port=8000 Desa i tanca el fitxer quan hagis acabat. A continuació, instal·la l'aplicació AWX amb l'ordre següent:
# ansible-playbook -i inventory install.ymlAquesta ordre descarregarà imatges de Docker i crearà un nou postgresql, memcached, rabbitmq, l'aplicació web awx i els contenidors de tasques awx. Espera una estona perquè acabi la instal·lació. Després, executa l'ordre següent per veure els contenidors creats amb l'ordre següent:
# docker psHauries de veure tots els contenidors amb el resultat següent:
| IMATGE | ORDRES | PORTS | NOMS |
| ansible/awx_task:latest | |
8052/tcp |
awx_task |
| ansible/awx_web:latest | |
0.0.0.0:8000->8052/tcp |
awx_web |
| memcached:alpine | |
11211/tcp | memcached |
| rabbitmq:3 | |
4369/tcp, 5671-5672/tcp, 25672/tcp | rabbitmq |
| postgres:9.6 | |
5432/tcp | postgres |
Un cop hagis fet això, pots continuar amb el pas següent.
Configurar Nginx com a servidor intermediari invers per a AWX
L'aplicació AWX ara està instal·lada i s'està executant al port 8000. A continuació, hauràs de configurar Nginx com a servidor intermediari invers, així podràs accedir a AWX fent servir el port 80.
Per fer-ho, primer instal·la Nginx amb l'ordre següent:
# apt-get install nginx -yUn cop s'hagi instal·lat Nginx, hauràs de crear un fitxer d'amfitrió virtual Nginx per a AWX. Pots crear-lo amb l'ordre següent:
# nano /etc/nginx/sites-available/awx.confAfegeix les línies següents:
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/awx.access.log;
error_log /var/log/nginx/awx.error.log;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:8000/;
}
}Desa i tanca el fitxer quan hagis acabat.
Després, activa l'amfitrió virtual d'AWX amb l'ordre següent:
# ln -s /etc/nginx/sites-available/awx.conf /etc/nginx/sites-enabled/A continuació, comprova l'error de sintaxi a Nginx amb l'ordre següent:
# nginx -tHauries de veure el resultat següent:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulFinalment, reinicia el servei Nginx per aplicar tots els canvis amb l'ordre següent:
# systemctl restart nginxAccedeix a la interfície web d'AWX
Ja tens AWX instal·lat i configurat, és hora d'accedir a la interfície web d'AWX.
Obre el teu navegador web i ves a l'URL http://example.com. Se't redirigirà a la pàgina d'inici de sessió tal com es mostra més avall:
Ara, introdueix el nom d'usuari i la contrasenya d'administrador que has especificat al fitxer d'inventari. Després, fes clic a la pestanya “SIGN IN”. Se't redirigirà a la pàgina del tauler de control d'AWX:
Enhorabona! Has instal·lat i configurat correctament Ansible AWX al teu servidor Ubuntu 18.04 🙂 Ara pots administrar la teva infraestructura des de la ubicació central.