Ansible ist ein Open-Source-IT-Automatisierungstool, das zur Automatisierung von Konfigurationsmanagement, Bereitstellung, Anwendungsbereitstellung, Orchestrierung und vielen anderen IT-Prozessen verwendet wird, ohne dass Agenten auf den Client-Knoten installiert werden müssen. Es stützt sich auf das SSH-Protokoll, um mit den Client-Knoten zu kommunizieren. Ansible bietet im Vergleich zu anderen ähnlichen Tools wie Puppet, Chef, Terraform usw. eine einfache Verwendung und Installation. In diesem Tutorial lernen wir, wie Ansible unter CentOS 8 Linux installiert und konfiguriert wird.
Installieren Sie Ansible unter CentOS 8 Linux
Schritt 1: EPEL
installieren und aktivieren Aufbewahrungsort
[root@install-ansible ~]# dnf install epel-release -y
Schritt 2: Laden Sie den Remote-Index von Paketen in den lokalen Dateicache herunter, um nachfolgende dnf
zu beschleunigen Befehle.
[root@install-ansible ~]# dnf makecache CentOS Linux 8 - AppStream 2.6 kB/s | 4.3 kB 00:01 CentOS Linux 8 - BaseOS 2.6 kB/s | 3.9 kB 00:01 CentOS Linux 8 - Extras 1.0 kB/s | 1.5 kB 00:01 Extra Packages for Enterprise Linux 8 - x86_64 8.7 kB/s | 11 kB 00:01 Extra Packages for Enterprise Linux Modular 8 - x86_64 9.6 kB/s | 10 kB 00:01 Remi's Modular repository for Enterprise Linux 8 - x86_64 501 B/s | 833 B 00:01 Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 802 B/s | 833 B 00:01 Metadata cache created.
Schritt 3: Installieren Sie Ansible
[root@install-ansible ~]# dnf install ansible -y Last metadata expiration check: 0:02:17 ago on Tue 01 Mar 2022 10:28:48 AM IST. Dependencies resolved. ============================================================================================================================================================= Package Architecture Version Repository Size ============================================================================================================================================================= Installing: ansible noarch 2.9.27-1.el8 epel 17 M Installing dependencies: python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k python3-jmespath noarch 0.9.0-11.el8 appstream 45 k python3-pyasn1 noarch 0.3.7-6.el8 appstream 126 k python3-pynacl x86_64 1.3.0-5.el8 epel 100 k sshpass x86_64 1.06-9.el8 epel 27 k Installing weak dependencies: python3-paramiko noarch 2.4.3-1.el8 epel 289 k Transaction Summary ============================================================================================================================================================= Install 7 Packages Installed: ansible-2.9.27-1.el8.noarch python3-bcrypt-3.1.6-2.el8.1.x86_64 python3-jmespath-0.9.0-11.el8.noarch python3-paramiko-2.4.3-1.el8.noarch python3-pyasn1-0.3.7-6.el8.noarch python3-pynacl-1.3.0-5.el8.x86_64 sshpass-1.06-9.el8.x86_64 Complete!
Schritt 4: Überprüfen Sie die Installation von ansible
[root@install-ansible ~]# ansible --version 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, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
Ansible auf CentOS 8 konfigurieren
Betrachten Sie die folgende Architektur für dieses Tutorial. Sie können dasselbe auf n Clients erweitern.
Verwalten/Administrieren von Clients von Ansible Server
Zum Verwalten von Clients muss SSH installiert sein und ausgeführt werden. SSH-Ports müssen offen und vom Ansible-Server zugänglich sein.
Schritt 5: Öffnen Sie /etc/hosts
Datei auf Ansible-Server
In diesem Artikel verwenden wir /etc/hosts
Datei zur DNS-Namensauflösung der Clients IP-Adr.
[root@ansible-server ~]# vim /etc/hostsIP-Adresse oder DNS-Namen für die Clients
Sie können die IP-Adresse oder DNS-Namen der zu verwaltenden Clients verwenden
Fügen Sie die folgenden Einträge für die Ansible-Client-IP-Adresse und den Hostnamen hinzu
10.180.10.122 ansible-client
Passwortlose SSH-Authentifizierung einrichten
Schritt 6: Generieren Sie SSH-Schlüssel auf Ansible Server (Verwaltungsknoten), ohne zur Eingabe einer Passphrase aufgefordert zu werden.
[centos@ansible-server ~]$ ssh-keygen -f id_rsa -t rsa -N '' Generating public/private rsa key pair. Your identification has been saved in id_rsa. Your public key has been saved in id_rsa.pub. The key fingerprint is: SHA256:vqvgSILGrVxCDsLuORbJojxiYDEFEFlNQi5ZrHeqYhE centos@ansible-server The key's randomart image is: +---[RSA 3072]----+ |+B*o. | |.+.o. | |o.o | |oE. . | |++=o S | |@*o . | |OB+o. . | |OX=o . . | |*=+ . ..o. | +----[SHA256]-----+
Schritt 7: Kopieren Sie die SSH-Schlüssel in Ansible Client
[centos@ansible-server ~]$ ssh-copy-id centos@ansible-client /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/centos/.ssh/id_rsa.pub" The authenticity of host 'ansible-client (10.180.141.122)' can't be established. ECDSA key fingerprint is SHA256:oDKa1jiDVmPzHmD0HqKr5v10xhalFVbklrdudxAFx5M. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /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 centos@ansible-client's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'centos@ansible-client'" and check to make sure that only the key(s) you wanted were added.Passwortabfrage für Centos-Benutzer auf Ansible-Client
Geben Sie zum ersten Mal das Anmeldepasswort für den Centos-Benutzer auf dem Ansible-Client ein. Nachdem die SSH-Schlüssel kopiert wurden, können Sie sich passwortlos anmelden
Schritt 8: Überprüfen Sie die passwortlose Verbindung
[centos@ansible-server ~]$ ssh centos@ansible-client Last login: Tue Mar 1 05:57:15 2022 from 10.180.6.115 [centos@ansible-client ~]$
Schritt 9: Sudo-Zugriff für centos
Benutzer auf Ansible-Client
Achten Sie darauf, die centos
Benutzer auf ansible-client hat sudo-Zugriff ohne Passwort. Dies hilft ansible, jeden root
auszuführen Befehle auf Ansible-Client mit centos
Benutzer.
# visudo ## Add the below content centos ALL=(ALL) NOPASSWD:ALL
Jetzt ist der Ansible-Client bereit, um vom Ansible-Server (Verwaltungsknoten) mithilfe von centos
verwaltet zu werden Benutzer auf ansible-client.
Verwendung von Ansible
Schritt 10: Ansible-Inventar erstellen
Ansible führt eine Liste aller von ihm verwalteten Informationen des Remote-Clients in einer Datei mit dem Namen inventory
Datei. Die Ansible-Inventardatei ist nur eine einfache Textdatei und der Standardspeicherort ist:/etc/ansible/hosts
Wir können eine Ansible-Inventardatei an einem anderen als dem Standardspeicherort erstellen.
[centos@ansible-server ~]$ mkdir ~/ansible [centos@ansible-server ~]$ cd ~/ansible [centos@ansible-server ansible]$ vim hosts
Fügen Sie alle Einträge des ansiblen Clients hinzu
ansible-client ansible_user=centosOption ansible_user in der Datei ansible/hosts
Die Option ansible_user wird verwendet, um den Benutzer auf dem ansible-Client zu definieren, der Befehle ausführt.
Ansible-Inventardatei – Mischung aus Hostname und IP-AdresseSie können auch IP-Adressen und DNS-Namen der Remote-Clients in der Inventardatei mischen
10.180.10.122 ansible_user=centosGruppieren Sie Remote-Clients in der Inventardatei
Sie können Remote-Clients auch basierend auf ihrer Verwendung in der Bestandsdatei gruppieren. Zum Beispiel, wenn Sie 4 Clients als Webserver und 2 als DB-Server haben.
[centos] ansible-client ansible_user=centos
Schritt 11: Alle Hosts aus der Inventardatei auflisten
[centos@ansible-server ansible]$ ansible -i hosts --list-hosts all hosts (1): ansible-client
Schritt 12: Vergewissern Sie sich, dass die Hosts aktiv sind
[centos@ansible-server ansible]$ ansible -i hosts -m ping all ansible-client | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Schritt 13: Befehle auf dem Remote-Ansible-Client ausführen (basierend auf allen/Gruppennamen)
[centos@ansible-server ansible]$ ansible -i hosts -m shell -a "more /etc/redhat-release" ansible-client ansible-client | CHANGED | rc=0 >> CentOS Linux release 7.8.2003 (Core)
Das ist es! Beginnen Sie jetzt mit der Verwaltung Ihrer Remote-Clients mit Ansible auf Ihre eigene Weise.
Ansible Playbook hilft Ihnen, Ihre Server einfacher zu verwalten, indem komplexe IT-Aktionen mit begrenzter oder ohne menschliche Beteiligung ausgeführt werden. Wir werden versuchen, Ansible Playbook in unserem nächsten Artikel zu behandeln.