AWX je zkratka pro „Ansible Web eXecutable“ je bezplatný projekt s otevřeným zdrojovým kódem, který vám umožňuje snadno spravovat a ovládat váš projekt Ansible. Poskytuje webové uživatelské rozhraní a modul úloh postavený na Ansible. Poskytuje výkonné REST API a umožňuje vám spravovat nebo synchronizovat inventář s jinými cloudovými zdroji, řídit přístup a integrovat se s LDAP.
V tomto tutoriálu vám ukážeme, jak nainstalovat Ansible AWX s Dockerem na CentOS 8.
Předpoklady
- Server se systémem CentOS 8 s minimálně 4 GB RAM.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Začínáme
Než začnete, budete muset do svého systému nainstalovat úložiště EPEL. Můžete jej nainstalovat pomocí následujícího příkazu:
dnf install epel-release -y
Dále budete muset nainstalovat některé další balíčky potřebné ke spuštění AWX na vašem systému. Všechny je můžete nainstalovat pomocí následujícího příkazu:
dnf install git gcc gcc-c++ ansible nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y
Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.
Instalovat Docker a Docker Compose
Dále budete muset nainstalovat Docker, abyste mohli spustit AWX v kontejneru Docker. Ve výchozím nastavení není nejnovější verze Dockeru k dispozici ve výchozím úložišti CentOS 8. Budete tedy muset do svého systému přidat úložiště Docker. Úložiště Docker můžete přidat pomocí následujícího příkazu:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Po přidání nainstalujte nejnovější stabilní verzi Dockeru pomocí následujícího příkazu:
dnf install docker-ce-3:18.09.1-3.el7 -y
Po instalaci Dockeru zkontrolujte nainstalovanou verzi Dockeru pomocí následujícího příkazu:
docker --version
Měli byste získat následující výstup:
Docker verze 19.03.7, sestavení 7141c199a2
Dále spusťte službu Docker a povolte její spuštění po restartování systému pomocí následujícího příkazu:
systemctl start docker
systemctl enable docker
Stav služby Docker můžete ověřit pomocí následujícího příkazu:
systemctl status docker
Měli byste získat následující výstup:
? docker.service - Docker Application Container Engine Načteno:načteno (/usr/lib/systemd/system/docker.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od středy 2020-03-11 02:36:04 EDT; Před 23 minutami Dokumenty:https://docs.docker.com Hlavní PID:5882 (dockerd) Úkoly:101 Paměť:2,6G CGroup:/system.slice/docker.service ??5882 /usr/bin/dockerd -H fd:// ??5899 containerd --config /var/run/docker/containerd/containerd.toml --log-level info ??8815 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io .containerd.runtime.v1.linux/moby/4b91575d64b1b> ??8847 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1>linux/moby/0f446c9 ?8894 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.5 -container-port 8052 ??8899 containerd-shim -namespace moby -workdir /var /lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/47300ec1c26ff> ??8923 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime .v1.linux/moby/9827b9831fa5b> ??9631 obsahuje erd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/166b153faa275>
Dále nainstalujte Docker compose pomocí následujícího příkazu:
pip3 install docker-compose
Po instalaci ověřte verzi Docker compose pomocí následujícího příkazu:
docker-compose --version
Měli byste vidět následující výstup:
docker-compose verze 1.25.4, sestavení neznámé
Nakonec spusťte následující příkaz a nastavte příkaz python tak, aby používal python 3:
alternativy --set python /usr/bin/python3
Instalovat Ansible AWX
Nejprve si stáhněte nejnovější verzi Ansible AWX z úložiště Git Hub pomocí následujícího příkazu:
klon git https://github.com/ansible/awx.git
Dále vygenerujte tajný klíč pro šifrování souboru inventáře pomocí následujícího příkazu:
openssl rand -base64 30
Měli byste získat následující výstup:
R+kbcDEUS8DlAftAbfWafVqLZ0lUy+Paqo4fEtgp
Poznámka:Pamatujte na výše uvedená tajemství, budete je muset vložit do souboru inventáře.
Dále změňte adresář na awx/installer/ a upravte soubor inventáře:
cd awx/installer/
nano inventář
Změňte následující řádky:
[všechny:vars] dockerhub_base =ansibleawx_task_hostname =awxawx_web_hostname =awxwebpostgres_data_dir ="/ var / lib / pgdocker" host_port =80host_port_ssl =443docker_compose_dir ="~ / .awx / awxcompose" pg_username =awxpg_password =awxpasspg_database =awxpg_port =5432pg_admin_password =passwordrabbitmq_password =awxpassrabbitmq_erlang_cookie=cookiemonsteradmin_user=adminadmin_password=passwordcreate_preload_data=Truesecret_key=R+kbcDEUS8DlAftAbfWafVqLZ0lUy+Paqo4fEtgpawx/server_4.pro..“8_8_official=truc/4.pro.Po dokončení uložte a zavřete soubor. Poté vytvořte adresář pro Postgres:
mkdir /var/lib/pgdockerNakonec spusťte následující příkaz k instalaci AWX:
ansible-playbook -i inventář install.ymlPo úspěšném dokončení instalace byste měli získat následující výstup:
skipping:[localhost]TASK [local_docker :Load web image] *************************************** ******************************************************* *********************** přeskakování:[localhost]TASK [local_docker :Načíst obrázek úkolu] *************** ******************************************************* ********************************************* přeskakování:[localhost] ÚKOL [local_docker :Nastavit úplná cesta k obrazu pro místní instalaci] ************************************************ ********************************************* přeskakování:[localhost] ÚKOL [local_docker :Nastavit DockerHub Image Paths] ******************************************************** *************************************************OK :[localhost]TASK [local_docker :Vytvořte adresář ~/.awx/awxcompose] ************************************** ******************************************************* ***změněno:[localhost]TASK [local_docker:Vytvořit konfiguraci Docker Compose] ************************************** ******************************************************* **změněno:[localhos t] => (item=environment.sh)změněno:[localhost] => (item=credentials.py)změněno:[localhost] => (item=docker-compose.yml)změněno:[localhost] => (položka =nginx.conf) ÚLOHA [local_docker:Vykreslení souboru SECRET_KEY] ****************************************** ******************************************************* *********** změněno:[localhost]TASK [local_docker :Spustit kontejnery] ************************** ******************************************************* ************************ změněno:[localhost]TASK [local_docker :Aktualizace důvěryhodnosti CA v kontejneru awx_web] ********** ******************************************************* ************************ změněno:[localhost]TASK [local_docker :Aktualizace důvěryhodnosti CA v kontejneru awx_task] ********** ******************************************************* *********************** změněno:[localhost] PLAY RECAP ******************** ******************************************************* ******************************************************* ************ localhost:ok=14 změna d=6 nedostupné=0 selhalo=0 přeskočeno=95 zachráněno=0 ignorováno=0Výše uvedený příkaz vytvoří a spustí všechny požadované kontejnery Docker pro AWX. Spuštěné kontejnery můžete ověřit pomocí následujícího příkazu:
docker psMěli byste vidět následující výstup:
ID KONTEJNERU OBRÁZKOVÝ PŘÍKAZ VYTVOŘEN STAV JMÉNA PORTŮ4b91575d64b1 ansible/awx_task:9.2.0 "/tini -- /bin/sh -c…" Asi před minutou Nahoru Asi před minutou 8052/tcp awx_task91250aw_awsible:39 "/tini -- /bin/sh -c…" Asi před minutou Nahoru Asi minutou 0.0.0.0:80->8052/tcp awx_web47300ec1c26f postgres:10 "docker-entrypoint.s..." Asi před minutou Nahoru O a minuta 5432/tcp awx_postgres166b153faa27 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" Asi před minutou Zvýšení o 58 sekund 4369/tcp, 5671-5672/tcp:0mrab3015672721-1566 "docker-entrypoint.s..." Asi před minutou Nahoru O a minuta 11211/tcp awx_memcachedKonfigurovat SELinux a bránu firewall
Ve výchozím nastavení je SELinux povolen v CentOS 8. Pro práci s AWX v prostředí Docker se doporučuje jej zakázat. Můžete jej zakázat úpravou následujícího souboru:
nano /etc/sysconfig/selinuxNajděte následující řádek:
SELINUX=vynucováníA nahraďte jej následujícím řádkem:
SELINUX=zakázánoPo dokončení uložte a zavřete soubor. Poté restartujte systém, abyste provedli změny. Dále budete muset povolit službu http a https prostřednictvím brány firewall. Můžete je povolit pomocí následujícího příkazu:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add- service=httpsPoté restartujte službu firewalld, aby se změny projevily:
firewall-cmd --reloadPřístup k webovému rozhraní AWX
Nyní otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru. Budete přesměrováni na přihlašovací stránku AWX:
Zadejte své uživatelské jméno a heslo správce, které jste definovali v souboru inventáře, a klikněte na SIGN IN knoflík. Výchozí řídicí panel AWX byste měli vidět na následující stránce:
Závěr
Gratulujeme! úspěšně jste nainstalovali AWX s Dockerem na CentOS 8. Nyní můžete svůj projekt Ansible snadno spravovat a ovládat pomocí webového rozhraní AWX.
Cent OS