Ansible ist ein kostenloses Open-Source-Konfigurationsmanagement- und Automatisierungstool, mit dem Hunderte und Tausende von Servern von einem zentralen Standort aus verwaltet werden können.
Ansible AWX ist ein von Red Hat gesponsertes Open-Source-Projekt, das Ihnen hilft, Ansible in IT-Umgebungen zu steuern. Es bietet eine webbasierte REST-API und eine Task-Engine für Ansible. Sie können Playbooks, Secrets, Inventare und Cron-Jobs über die webbasierte AWX-Oberfläche verwalten.
In diesem Tutorial zeigen wir Ihnen, wie Sie Ansible AWX mit Docker unter Debian 10 installieren.
Voraussetzungen
- Ein frischer Debian 10 VPS auf der Atlantic.net Cloud Platform
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server mit Debian 10 als Betriebssystem und mindestens 4 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Debian 10-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – Docker installieren
Zunächst müssen Sie Docker und Docker Compose in Ihrem System installieren. Standardmäßig ist die neueste Version von Docker nicht im Debian-Standard-Repository verfügbar, daher müssen Sie das Docker-Repository zu Ihrem System hinzufügen.
Installieren Sie die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
Laden Sie als Nächstes den Docker-GPG-Schlüssel herunter und fügen Sie ihn mit dem folgenden Befehl hinzu:
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
Fügen Sie als Nächstes das Docker-Repository mit dem folgenden Befehl hinzu:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Aktualisieren Sie als Nächstes das Docker-Repository und installieren Sie Docker mit Docker compose mit dem folgenden Befehl:
apt-get update -y apt-get install docker-ce docker-compose -y
Sobald beide Pakete installiert sind, überprüfen Sie die installierte Version von Docker mit dem folgenden Befehl:
docker --version
Sie sollten die folgende Ausgabe erhalten:
Docker version 19.03.13, build 4484c46d9d
Schritt 2 – Ansible installieren
AWX baut auf Ansible auf. Sie müssen also Ansible auf Ihrem System installieren.
Fügen Sie zuerst das Ansible-Repository mit dem folgenden Befehl hinzu:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list
Aktualisieren Sie als Nächstes das Repository und installieren Sie Ansible mit dem folgenden Befehl:
apt-get update -y apt-get install ansible -y
Überprüfen Sie nach der Installation von Ansible die installierte Version von Ansible mit dem folgenden Befehl:
ansible --version
Sie sollten die folgende Ausgabe erhalten:
ansible 2.9.13 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]
Schritt 3 – Installieren Sie Node.js und die Python-Bibliothek
Installieren Sie zuerst Node.js, NPM und Git mit dem folgenden Befehl:
apt-get install nodejs npm git -y npm install npm --global
Installieren Sie als Nächstes das Python-Modul für Docker und andere erforderliche Abhängigkeiten mit dem folgenden Befehl:
apt-get install python3-pip pwgen python3-docker -y pip3 install requests==2.14.2
Aktualisieren Sie als Nächstes die standardmäßige Python-Version mit dem folgenden Befehl:
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Als Nächstes müssen Sie das Docker-Compose-Python-Modul in Ihrem System installieren.
Überprüfen Sie zunächst die installierte Version von Docker Compose mit dem folgenden Befehl:
docker-compose version
Sie sollten die folgende Ausgabe erhalten:
docker-compose version 1.21.0, build unknown docker-py version: 3.4.1 CPython version: 3.7.3 OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
Installieren Sie als Nächstes die passende Version des Docker-Compose-Python-Moduls mit dem folgenden Befehl:
pip3 install docker-compose==1.21.0
Schritt 4 – Ansible AWX installieren
Laden Sie zunächst mit dem folgenden Befehl die neueste Version der AWX-Quelle aus dem Git-Repository herunter:
git clone --depth 50 https://github.com/ansible/awx.git
Wechseln Sie nach dem Herunterladen in das Verzeichnis awx und generieren Sie den geheimen Schlüssel mit dem folgenden Befehl:
cd awx/installer/ pwgen -N 1 -s 30
Sie sollten die folgende Ausgabe erhalten:
4NaNkNcMBOj4Jxp4fWi91mymuW9TbR
Als nächstes erstellen Sie eine neue Inventardatei mit dem folgenden Befehl:
nano inventory
Fügen Sie die folgenden Zeilen hinzu, einschließlich Admin-Benutzer, Passwort, geheimer Schlüssel, Port und Hostname, wie unten gezeigt:
dockerhub_base=ansible awx_task_hostname=awx awx_web_hostname=awxweb postgres_data_dir=/tmp/pgdocker host_port=80 host_port_ssl=443 docker_compose_dir=/tmp/awxcompose pg_username=awx pg_password=awxpass pg_database=awx pg_port=5432 admin_user=admin admin_password=adminpassword create_preload_data=True secret_key=2fCkx2K5GnIjBz4OterhOC3ey0WPdj
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie als Nächstes das Playbook aus, um Ansible AWX mit dem folgenden Befehl zu installieren:
ansible-playbook -i inventory install.yml
Sobald Ansible AWX installiert wurde, sollten Sie die folgende Ausgabe erhalten:
TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item={u'mode': u'0600', u'file': u'environment.sh'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'credentials.py'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'docker-compose.yml'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'nginx.conf'}) changed: [localhost] => (item={u'mode': u'0664', u'file': u'redis.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=15 changed=7 unreachable=0 failed=0 skipped=86 rescued=0 ignored=0
Als Nächstes können Sie die Liste der ausgeführten Container mit dem folgenden Befehl überprüfen:
docker ps
Sie sollten die folgende Ausgabe erhalten:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 167d008ee26f ansible/awx:14.1.0 "/usr/bin/tini -- /u…" About a minute ago Up About a minute 8052/tcp awx_task 260c028bf07d ansible/awx:14.1.0 "/usr/bin/tini -- /b…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web e15d5ee1c940 postgres:10 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp awx_postgres 6472ee690066 redis "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp awx_redis
Schritt 5 – Greifen Sie auf das Ansible AWX-Dashboard zu
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://your-server-ip auf das Ansible AWX-Dashboard zu . Sie werden zur AWX-Anmeldeseite weitergeleitet:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein, die Sie in der Inventardatei definiert haben, und klicken Sie auf das SIGN EIN Taste. Sie sollten das Ansible AWX-Dashboard auf der folgenden Seite sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Ansible AWX mit Docker erfolgreich auf Debian 10 installiert. Sie können jetzt Ansible-Inventar, Secrets, Playbooks und mehr ganz einfach über das AWX-Dashboard steuern; Probieren Sie es jetzt auf VPS-Hosting von Atlantic.Net aus!