AWX je webová aplikace s otevřeným zdrojovým kódem, která poskytuje uživatelské rozhraní, REST API a modul úloh pro Ansible. Je to open source verze Ansible Tower. AWX vám umožňuje spravovat Ansible playbooky, inventáře a plánovat spouštění úloh pomocí webového rozhraní.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat AWX na serveru Ubuntu 18.04. Chystáme se nainstalovat AWX s Nginx jako reverzní proxy a postavené na zabezpečeném připojení HTTPS.
Předpoklad
- Server Ubuntu 18.04
- Paměť RAM + 4 GB a 2 jádra
- Oprávnění uživatele root
Co uděláme:
- Nainstalujte Docker a Ansible
- Instalovat další balíčky
- Stáhněte a nakonfigurujte zdrojový kód Ansible AWX
- Nainstalujte Ansible AWX
- Nainstalujte a nakonfigurujte Nginx jako reverzní proxy
- Nastavení brány UFW Firewall
- Testování
Krok 1 – Instalace Docker a Ansible
Nejprve nainstalujeme hlavní balíčky potřebné pro instalaci AWX, je to samotný Docker a Ansible. Před instalací těchto balíčků aktualizujte úložiště Ubuntu pomocí následujícího příkazu.
sudo apt update
Nyní nainstalujte Docker a Ansible.
sudo apt install ansible -y
sudo apt install docker.io -y
Po dokončení instalace zkontrolujte docker a ansible pomocí následujících příkazů.
docker version
ansible --version
Níže je výsledek.
Krok 2 – Instalace dalších balíčků
Nyní nainstalujeme další balíčky pro instalaci AWX. Nainstalujeme balíček 'python-pip' do systému a poté nainstalujeme docker-compose a docker-py z PyPI python repozitáře.
Nainstalujte 'python-pip' pomocí příkazu apt níže.
sudo apt install python-pip -y
Po dokončení instalace nainstalujte balíčky docker-compose 1.9.0 a docker-py z úložiště PyPI pomocí příkazů pip níže.
pip install docker-compose==1.9.0
pip install docker-py
Dále musíme nainstalovat nodejs a npm na server.
Spusťte následující příkaz.
sudo apt install nodejs npm -y
Po dokončení upgradujte npm na nejnovější verzi.
npm install npm --global
V důsledku toho byly do systému nainstalovány všechny závislosti. A jsme připraveni nainstalovat AWX.
Krok 3 – Stáhněte si zdrojový kód AWX a nakonfigurujte jej
V tomto kroku stáhneme zdrojový kód AWX a nakonfigurujeme soubor inventáře pro instalaci AWX.
Stáhněte si zdrojový kód AWX z úložiště git a přejděte do instalačního adresáře awx.
git clone https://github.com/ansible/awx.git
cd awx/installer/
Poté vygenerujte nový tajný klíč pro awx pomocí příkazu openssl níže.
openssl rand -hex 32
Zkopírujte vygenerovaný tajný klíč do poznámky.
Nyní upravte konfigurační soubor 'inventář'.
vim inventory
Změňte 'postgres_data_dir' na adresář '/var/lib/pgdocker'.
postgres_data_dir=/var/lib/pgdocker
Změňte 'host_port' na '8080'.
host_port=8080
Odkomentujte řádek 'use_docker_compose' a změňte hodnotu na 'true', protože awx budeme spravovat pomocí docker compose.
use_docker_compose=true
Nyní se ujistěte, že 'docker_compose_dir' je umístěn v adresáři '/var/lib/awx'.
docker_compose_dir=/var/lib/awx
Změňte přihlašovací údaje pro 'pg_password', 'rabbitmq_password', 'rabbitmq_erlang_cookie', 'admin_user' a 'admin_password' pomocí vlastního hesla.
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
poté změňte tajný klíč konfigurace awx pomocí vygenerovaného klíče nahoře.
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Poté odkomentujte 'project_data_dir' a ponechte hodnotu jako výchozí.
project_data_dir=/var/lib/awx/projects
Uložte a zavřete konfiguraci.
Níže je upraven soubor 'inventář'.
grep -v '^#' inventory
konfigurační soubor inventáře.
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]
dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/var/lib/pgdocker
host_port=8080
use_docker_compose=true
docker_compose_dir=/var/lib/awx
pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
admin_user=hakase
admin_password=hakasepass
create_preload_data=True
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
project_data_dir=/var/lib/awx/projects
A v důsledku toho jsme připraveni nainstalovat awx v další fázi.
Krok 4 – Instalace Ansible AWX
Nainstalujte awx pomocí následujícího příkazu ansible-playbook.
ansible-playbook -i inventory install.yml
Příručka provede některé úkoly, včetně stahování obrázků dockeru a vytváření nových kontejnerů postgresql, memcached, rabbitmq, webové aplikace awx a úlohy awx.
A níže je výsledek.
Dále přejděte do adresáře '/var/lib/awx' a získáte konfiguraci 'docker-compose.yml'. Poté zkontrolujte všechny dostupné kontejnery dockeru pomocí příkazu docker-compose.
cd /var/lib/awx
docker-compose ps
A zobrazí se vám kontejnery awx, jak je uvedeno níže.
Kromě toho můžete zkontrolovat protokoly služby 'task' pomocí následujícího příkazu.
docker-compose logs task
Krok 5 – Instalace a konfigurace Nginx jako reverzního proxy
Po instalaci awx nainstalujeme a nakonfigurujeme Nginx jako reverzní proxy pro awx s portem '8080'.
Nainstalujte Nginx pomocí následujícího příkazu apt.
sudo apt install nginx -y
Po dokončení instalace přejděte do adresáře '/etc/nginx/sites-available/' a vytvořte novou konfiguraci virtuálního hostitele s názvem 'awx' pomocí editoru vim.
cd /etc/nginx/sites-available/
vim awx
Nyní vložte konfiguraci níže.
server {
listen 80;
server_name awx.hakase-labs.io;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name awx.hakase-labs.io;
access_log /var/log/nginx/awx.access.log;
error_log /var/log/nginx/awx.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_session_timeout 5m;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
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://10.5.5.20:8080/;
}
}
Změňte název domény a IP adresu proxy_pass na vlastní, poté uložte a ukončete.
Nyní aktivujte virtuálního hostitele 'awx' a otestujte konfiguraci nginx.
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t
Ujistěte se, že v konfiguraci nginx nedošlo k chybě, a poté službu nginx restartujte.
sudo systemctl restart nginx
V důsledku toho byla dokončena instalace a konfigurace Nginx jako reverzní proxy pro awx.
Krok 6 – Konfigurace brány UFW
Přidejte služby SSH, HTTP a HTTPS do konfigurace brány firewall UFW.
ufw allow ssh
ufw allow http
ufw allow https
Nyní spusťte a povolte službu ufw firewall.
ufw enable
Napište 'y' do yes a ufw firewall byl nakonfigurován.
Krok 7 – Testování
Otevřete webový prohlížeč a do adresního řádku zadejte adresu URL awx.
https://awx.hakase-labs.io
Zobrazí se vám přihlašovací stránka awx, jak je uvedeno níže.
Nyní zadejte uživatele 'hakase' a heslo 'hakasepass' a poté klikněte na tlačítko 'přihlásit se'.
Nyní získáte řídicí panel správce awx, jak je uvedeno níže.
A instalace Ansible AWX s reverzním proxy serverem Nginx byla úspěšně dokončena.