AWX znamená „Ansible Web eXecutable“ je bezplatný projekt s otevřeným zdrojovým kódem, který vám umožňuje snadno spravovat a ovládat projekty Ansible. AWX poskytuje webové uživatelské rozhraní, 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 AWX Ansible AWX s Dockerem na Rocky Linux 8.3 a CentOS 8.
Předpoklad
- Server Rocky Linux 8.3 nebo CentOS 8 s minimálně 4 GB RAM.
- Přihlaste se jako uživatel root nebo uživatel s právy sudo
Než začnete
Přidejte úložiště EPEL do systému pomocí následujícího příkazu:
dnf install epel-release -y
Dále budete muset nainstalovat některé další balíčky, které jsou nutné ke spuštění AWX v 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.
Nainstalujte Docker a Docker Compose
Dále musíme nainstalovat Docker, abychom spustili AWX v kontejneru Docker. Ve výchozím nastavení není nejnovější verze Dockeru k dispozici ve výchozích úložištích CentOS 8. Musíte tedy do 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
Jakmile je Docker nainstalován, zkontrolujte, která verze Dockeru je nainstalována, pomocí následujícího příkazu:
docker --version
Měli byste dostat něco takového:
Docker version 19.03.7, build 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 dostat něco takového:
? docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2020-03-11 02:36:04 EDT; 23min ago Docs: https://docs.docker.com Main PID: 5882 (dockerd) Tasks: 101 Memory: 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/0f36c9784f748> ??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 containerd-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
Uvidíte následující výstup:
docker-compose version 1.25.4, build unknown
Nakonec spusťte následující příkaz a nastavte příkaz python tak, aby používal python 3:
alternatives --set python /usr/bin/python3
Jak nainstalovat Google Chrome na Ubuntu 20.04 a Ubuntu 21.04
Nainstalujte CentOS 8 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:
git clone https://github.com/ansible/awx.git
Dále vytvořte tajný klíč k zašifrování souboru inventáře pomocí následujícího příkazu:
openssl rand -base64 30
Získáte následující výstup:
R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep
Poznámka :Zapište si tajný klíč, který se objeví, zkopírováním a vložením do textového editoru, protože jej musíte vložit do souboru inventáře.
Dále přejděte do adresáře awx/ installer / a upravte soubor inventáře pomocí textového editoru nano
:
cd awx/installer/ nano inventory
Změňte následující řádky:
[all: vars] dockerhub_base = ansible awx_task_hostname = awx awx_web_hostname = awxweb postgres_data_dir = "/ var / lib / pgdocker" host_port = 80 host_port_ssl = 443 docker_compose_dir = "~ / .awx / awxcompose" pg_username = awx pg_password = awxpass pg_database = awx pg_port = 5432 pg_admin_password = password rabbitmq_password = awxpass rabbitmq_erlang_cookie = cookiemonster admin_user = admin admin_password = password create_preload_data = True secret_key = R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep awx_official = true awx_alternate_dns_servers = "8.8.8.8,8.8.4.4" project_data_dir = / var / lib / awx / projects
Po dokončení uložte a zavřete soubor. Poté vytvořte adresář pro Postgres:
mkdir /var/lib/pgdocker
Nakonec spusťte následující příkaz k instalaci AWX:
ansible-playbook -i inventory install.yml
Po úspěšném dokončení instalace byste měli získat následující výstup:
skipping: [localhost] TASK [local_docker : Load web image] ********************************************************************************************************** skipping: [localhost] TASK [local_docker : Load task image] ********************************************************************************************************* skipping: [localhost] TASK [local_docker : Set full image path for local install] *********************************************************************************** skipping: [localhost] TASK [local_docker : Set DockerHub Image Paths] *********************************************************************************************** ok: [localhost] TASK [local_docker : Create ~/.awx/awxcompose directory] ************************************************************************************** changed: [localhost] TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item=environment.sh) changed: [localhost] => (item=credentials.py) changed: [localhost] => (item=docker-compose.yml) changed: [localhost] => (item=nginx.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=14 changed=6 unreachable=0 failed=0 skipped=95 rescued=0 ignored=0
Výše uvedený příkaz vytvoří a spustí všechny potřebné kontejnery Docker pro AWX. Spuštěný kontejner můžete ověřit pomocí následujícího příkazu:
docker ps
Uvidíte následující výstup:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b91575d64b1 ansible/awx_task:9.2.0 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 8052/tcp awx_task 9827b9831fa5 ansible/awx_web:9.2.0 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web 47300ec1c26f postgres:10 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp awx_postgres 166b153faa27 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" About a minute ago Up 58 seconds 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq 0f36c9784f74 memcached:alpine "docker-entrypoint.s…" About a minute ago Up About a minute 11211/tcp awx_memcached
Jak nainstalovat Laravel na Ubuntu 20.04
Nakonfigurujte SELinux a Firewall
Ve výchozím nastavení je SELinux povolen na CentOS 8. Pro práci s AWX v prostředí Docker je doporučeno jej zakázat. Můžete jej zakázat úpravou následujícího souboru:
nano /etc/sysconfig/selinux
Najděte následující řádek:
SELINUX=enforcing
A nahraďte jej následujícím řádkem:
SELINUX=disabled
Po dokončení uložte a zavřete soubor. Poté restartujte systém, abyste provedli změny. Dále musíte povolit služby http a https přes firewalld. 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=https
Poté restartujte službu firewalld, aby se změny projevily:
firewall-cmd --reload
Přístup k webovému rozhraní AWX
Nyní otevřete webový prohlížeč a zadejte adresu URL http:// domain_ or_server-ip. Budete přesměrováni na přihlašovací stránku AWX:
Zadejte své uživatelské jméno a heslo správce, které jste nastavili v souboru inventáře, a klikněte na tlačítko PŘIHLÁSIT SE . Výchozí řídicí panel AWX uvidíte na následující stránce:
Závěr
Gratulujeme! Úspěšně jste nainstalovali AWX s Dockerem na Rocky linux 8.3 a CentOS 8. Nyní můžete své projekty Ansible snadno spravovat a ovládat pomocí webového rozhraní AWX.
Jak nainstalovat a nakonfigurovat Javu na Ubuntu 20.04