Ansible ist eine kostenlose Open-Source-Automatisierungsplattform, die von Systemadministratoren verwendet wird, um mehrere Systeme gleichzeitig zu installieren, zu konfigurieren und bereitzustellen. Heutzutage sind IT-Umgebungen sehr komplex und müssen oft extrem schnell skaliert werden. Die Automatisierung erleichtert die Arbeit von Systemadministratoren und Entwicklern und ermöglicht es ihnen, sich auf andere Aufgaben zu konzentrieren, die einen Mehrwert für ein Unternehmen darstellen. Ansible ist sehr einfach einzurichten und zu verwenden; Sie benötigen keine Programmierkenntnisse, um Ansible zu verwenden.
In diesem Beitrag zeigen wir Ihnen, wie Sie Ansible auf Oracle Linux 8 installieren.
Voraussetzungen
- Server mit Oracle Linux 8 auf der Atlantic.Net Cloud Platform. Dies wird Ihr Manager-Knoten sein
- Ein zweiter Server, auf dem Oracle Linux 8 auf der Atlantic.Net Cloud Platform ausgeführt wird. Dies wird Ihr Worker-Knoten sein
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Oracle Linux 8 als Betriebssystem mit mindestens 2 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 Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – Richten Sie eine SSH-Schlüssel-basierte Authentifizierung ein
Bevor Sie beginnen, müssen Sie eine passwortlose SSH-Anmeldung zwischen dem Ansible-Steuerknoten und dem Manager-Knoten einrichten. Sie können dies tun, indem Sie eine SSH-Schlüssel-basierte Authentifizierung einrichten.
Generieren Sie zunächst einen privaten und öffentlichen Schlüssel mit dem folgenden Befehl:
ssh-keygen -t rsa
Sie sollten die folgende Ausgabe sehen:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0qOchzAC0Asm8WPlduL7ZxN6C5NUelScBo2nYVuqPMs [email protected] The key's randomart image is: +---[RSA 3072]----+ |oo . .=.. | |+o.o +.B | |+.+.+ ..oO | | o.+ o =+ | | . +.+.S | | . *+B.. | | ..O+.. | | .E+= | | .+.o | +----[SHA256]-----+
Kopieren Sie als Nächstes den generierten öffentlichen Schlüssel mit dem folgenden Befehl auf die von Ansible verwalteten Knoten:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Sie sollten die folgende Ausgabe sehen:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. ECDSA key fingerprint is SHA256:4K4sZbu1hLHzDGlwmWAJng6nDbxDqp6hnv65KDaOAn0. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]<server-ip>'" and check to make sure that only the key(s) you wanted were added.
Führen Sie nun den folgenden Befehl aus, um die passwortlose SSH-Anmeldung zu testen:
ssh [email protected]
Schritt 3 – Ansible auf Oracle Linux 8 installieren
Jetzt müssen Sie das Ansible-Paket auf dem Ansible-Steuerknoten installieren. Standardmäßig ist das Ansible-Paket nicht im Standard-Repository von Oracle Linux 8 verfügbar, daher müssen Sie es aus dem EPEL-Repository installieren.
Installieren Sie zuerst das EPEL-Repo mit dem folgenden Befehl:
dnf install -y epel-release
Installieren Sie als Nächstes das Ansible-Paket mit dem folgenden Befehl:
dnf install ansible -y
Überprüfen Sie nach der Installation von Ansible die Ansible-Version mit dem folgenden Befehl:
ansible --version
Sie sollten die folgende Ausgabe sehen:
ansible 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.6/site-packages/ansible executable location = /usr/bin/ansible python version = 3.6.8 (default, Nov 10 2021, 06:50:23) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3.0.2)]
Schritt 4 – Ansible-Hosts konfigurieren
Als Nächstes müssen Sie die Ansible-Hosts-Konfigurationsdatei bearbeiten und den Remote-Linux-Server definieren, den Sie verwalten möchten.
Sie können es mit dem folgenden Befehl bearbeiten:
nano /etc/ansible/hosts
Fügen Sie die folgenden Zeilen hinzu:
[web] server1 ansible_ssh_host=<manager-node-ip> ansible_ssh_port=22 ansible_ssh_user=root [database] dbserver1 ansible_ssh_host=<worker-node-ip> ansible_ssh_port=22 ansible_ssh_user=root
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Bearbeiten Sie als Nächstes die Ansible-Konfigurationsdatei und deaktivieren Sie die Verfallswarnungen und die Überprüfung des Hostschlüssels:
nano /etc/ansible/ansible.cfg
Fügen Sie die folgende Zeile unter [defaults] hinzu:
deprecation_warnings=False host_key_checking = False
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Schritt 5 – Verwendung von Ansible
An diesem Punkt ist Ansible installiert und konfiguriert. Jetzt müssen Sie die Funktionalität von Ansible mit den Ad-hoc-Befehlen von Ansible überprüfen:
Überprüfen Sie zunächst die Konnektivität aller verwalteten Knoten mit dem folgenden Befehl:
ansible -m ping all
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:
dbserver1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" } server1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Wenn Sie nur die Konnektivität des Datenbankservers überprüfen möchten, führen Sie den folgenden Befehl aus:
ansible -m ping database
Sie erhalten die folgende Ausgabe:
dbserver1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Führen Sie den folgenden Befehl aus, um den freien Speicher auf dem Webserverknoten zu überprüfen:
ansible -m shell -a "free -m" web
Sie erhalten die folgende Ausgabe:
server1 | CHANGED | rc=0 >> total used free shared buff/cache available Mem: 1817 621 210 21 985 1006 Swap: 0 0 0
Führen Sie den folgenden Befehl aus, um die MySQL-Version auf dem Datenbankserverknoten zu überprüfen:
ansible -m shell -a "mysqladmin --version" database
Sie sollten die folgende Ausgabe sehen:
dbserver1 | CHANGED | rc=0 >> mysqladmin Ver 8.0.26 for Linux on x86_64 (Source distribution)
Schritt 6 – Ansible Playbook erstellen, um Pakete auf verwalteten Knoten zu installieren
Mit Ansible können wir ein Playbook erstellen, um alle Aufgaben zu definieren, die wir auf den verwalteten Knoten ausführen möchten. Erstellen Sie zunächst ein Verzeichnis zum Speichern Ihres Playbooks.
mkdir project
Navigieren Sie als Nächstes zum erstellten Verzeichnis und erstellen Sie mit dem folgenden Befehl eine YAML-Datei:
cd project nano app.yaml
Fügen Sie die folgende Konfiguration hinzu:
- name: Install Packages hosts: - web - database tasks: - name: Install php and nginx package: name: - php - httpd state: present
Speichern und schließen Sie die Datei und führen Sie dann das Playbook mit dem folgenden Befehl aus:
ansible-playbook app.yaml
Sobald das Ansible-Playbook erfolgreich ausgeführt wird, erhalten Sie die folgende Ausgabe:
PLAY [Install Packages] ********************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [server1] ok: [dbserver1] TASK [Install php and apache] **************************************************************************************************************** ok: [server1] changed: [dbserver1] PLAY RECAP *********************************************************************************************************************************** dbserver1 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 server1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Sie können jetzt die PHP-Version auf dem Webserver-Knoten mit dem folgenden Befehl überprüfen:
ansible -m shell -a "php -v" web
Sie erhalten die folgende Ausgabe:
server1 | CHANGED | rc=0 >> PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Schlussfolgerung
In diesem Handbuch haben wir erklärt, wie Ansible unter Oracle Linux 8 installiert wird. Wir haben auch erklärt, wie Sie Ad-hoc-Befehle und Playbook von Ansible verwenden, um verwaltete Knoten bereitzustellen. Sie können jetzt Ansible verwenden, um Ihre gesamte IT-Infrastruktur einfach bereitzustellen und zu verwalten. Probieren Sie es auf VPS-Hosting von Atlantic.Net aus!