GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren und konfigurieren Sie Ansible unter Redhat Enterprise Linux 8

Dieses Tutorial behandelt Schritt für Schritt die Installation und Konfiguration von Ansible auf Redhat Enterprise Linux 8.
Ansible ist das führende Open-Source-Konfigurationsmanagementsystem. Es macht es Administratoren und Betriebsteams leicht, Tausende von Servern von einem zentralen Computer aus zu steuern, ohne Agenten auf ihnen zu installieren.

In diesem Tutorial lernen Sie:

  • Ansible-Übersicht
  • Python installieren und konfigurieren
  • Kennwortloses SSH einrichten
  • Installieren Sie Ansible
  • Testen und Verwalten von Ansible

Ansible Architektur.

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System Red Hat Enterprise Linux 8
Software Python3, Ansible
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl.
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Ansible-Übersicht

Ansible ist eine radikal einfache IT-Automatisierungs-Engine, die die Cloud-Bereitstellung, das Konfigurationsmanagement, die Anwendungsbereitstellung, die Intra-Service-Orchestrierung und viele andere IT-Anforderungen automatisiert.

Ansible wurde vom ersten Tag an für mehrstufige Bereitstellungen entwickelt und modelliert Ihre IT-Infrastruktur, indem es beschreibt, wie alle Ihre Systeme miteinander in Beziehung stehen, anstatt nur jeweils ein System zu verwalten.

Es verwendet keine Agenten und keine zusätzliche benutzerdefinierte Sicherheitsinfrastruktur, ist also einfach bereitzustellen – und vor allem verwendet es eine sehr einfache Sprache (YAML in Form von Ansible Playbooks), mit der Sie Ihre Automatisierungsaufgaben auf eine Weise beschreiben können, die sich nähert einfaches Englisch. Ansible funktioniert, indem es eine Verbindung zu Ihren Knoten herstellt und kleine Programme, sogenannte „Ansible-Module“, an sie aussendet.
Diese Programme sind als Ressourcenmodelle des gewünschten Systemzustands geschrieben. Ansible führt dann diese Module aus (standardmäßig über SSH) und entfernt sie, wenn sie fertig sind.

Ihre Modulbibliothek kann sich auf jedem Computer befinden, und es sind keine Server, Daemons oder Datenbanken erforderlich. Normalerweise arbeiten Sie mit Ihrem bevorzugten Terminalprogramm, einem Texteditor und wahrscheinlich einem Versionskontrollsystem, um Änderungen an Ihren Inhalten zu verfolgen.

Python installieren und konfigurieren

Die Standardversion von Python in RHEL 8 ist Python 3.6. Aber Python 2 bleibt in RHEL 8 verfügbar. Wenn Python 3.6 aus irgendeinem Grund in der Installation von Red Hat Enterprise Linux 8 fehlt, müssen Sie es manuell installieren.

Python 3.6 kann auf RHEL 8 installiert werden, indem Sie den folgenden Befehl auf Ihrem Terminal ausführen. Python muss sowohl auf dem Ansible-Server als auch auf allen Hosts/Clients installiert werden, zu denen es eine Verbindung herstellt.

# yum install python3
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 8:59:59 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Dependencies resolved.
======================================================================================================================================================
 Package                 Arch                  Version                                     Repository                                            Size
======================================================================================================================================================
Installing:
 python36                x86_64                3.6.6-17.el8+2102+a4bbd900                  rhel-8-for-x86_64-appstream-beta-rpms                 22 k
Enabling module streams:
 python36                                      3.6                                                                                                   

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm                                                                        6.0 kB/s |  22 kB     00:03    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 6.0 kB/s |  22 kB     00:03     
warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-beta-rpms-64aba9de5ea7e089/packages/python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                         3.2 kB/s | 3.3 kB     00:01    
Importing GPG key 0xF21541EB:
 Userid     : "Red Hat, Inc. (beta key 2) <[email protected]>"
 Fingerprint: B08B 659E E86A F623 BC90 E8DB 938A 80CA F215 41EB
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
Is this ok [y/N]: y
...
Installed:
  python36-3.6.6-17.el8+2102+a4bbd900.x86_64                                                                                                          

Complete!

Um Python 3 zu verwenden, geben Sie einfach python3 ein im Terminal.

Sie sollten beachtet haben, dass zur Verwendung von Python 3 der Befehl python3 und python2 für Python 2 lautet. Was ist, wenn Ihre Anwendungen so konfiguriert sind, dass sie auf Python verweisen, das nicht systemweit verfügbar ist? Sie erhalten den folgenden Bash-Fehler.

# python
-bash: python: command not found

Sie können den alternativen Mechanismus verwenden, um den nicht versionierten Python-Befehl systemweit zu aktivieren und ihn auf eine bestimmte Version festzulegen. Führen Sie den folgenden Befehl aus, um Python 3 als Standard festzulegen.

# alternatives --set python /usr/bin/python3

Beim Ausführen von python -V sollte die standardmäßig konfigurierte Python-Version angezeigt werden:

#python -V
Python 3.6.6

oder indem Sie Python über eine Konsole starten:

# python
Python 3.6.6 (default, Oct 16 2018, 01:53:53) 
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Passwortloses SSH einrichten

Erstellen Sie den Benutzer ansible auf allen Hosts:

# useradd ansible ;  echo "" | passwd --stdin ansible

Nehmen Sie den erforderlichen Eintrag in der sudoers-Datei /etc/sudoers vor für Ansible-Benutzer für passwortlosen Sudo-Zugriff:

ansible ALL=(ALL) NOPASSWD: ALL

Generieren Sie nun den SSH-Schlüssel in Ansible Server:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): 
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wNt/uNePRkrV+Hhv/DJgteXK2BjOGvPbr9yNigXM2EM ansible@rhel8-ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          ==o@ +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+

Kopieren Sie es als Ansible-Benutzer auf Remote-Server:

$ ssh-copy-id ansible@rhel8-ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
The authenticity of host 'rhel8-ansible-client (192.168.1.109)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? 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
ansible@rhel8-ansible-client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ansible@rhel8-ansible-client'"
and check to make sure that only the key(s) you wanted were added.

Installieren Sie Ansible

Nachdem Python installiert wurde, fahren Sie mit der Installation von Pip fort, einem Python-Paketmanager, den wir zur Installation von Ansible verwenden:

# yum -y install python3-pip
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 9:03:18 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Package python3-pip-9.0.3-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Sobald wir pip3 haben installiert haben, verwenden Sie es, um Ansible als ansible-Benutzer im Ansible-Verwaltungssystem zu installieren.

$ pip3 install ansible --user

Sie können das installierte Ansible mit dem folgenden Befehl anzeigen:

$ ansible --version
ansible 2.7.6
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.6/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.6.6 (default, Oct 16 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Testen und Verwalten

Erstellen Sie die Ansible-Inventardatei, Standard ist /etc/ansible/hosts Sie können die Hosts-Datei jedoch in das Home-Verzeichnis des Ansible-Benutzers kopieren. Sie können auch eine Gruppe von Remote-Hosts wie unten in der Hosts-Datei erstellen.


[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110

Sie können das Ping-Modul verwenden, um Ansible zu testen, und nach erfolgreicher Ausführung können Sie die folgende Ausgabe sehen.

$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Die Option -i wird verwendet, um den Pfad zur Inventardatei bereitzustellen. Sie sollten die gleiche Ausgabe für den Gruppennamen "app" erhalten.

$ ansible -i hosts app -m ping
192.168.1.108 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.110 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Schlussfolgerung

Die Einfachheit und Fähigkeit von Ansible, die Komplexität anderer Tools zu verringern, hat es zu einem zuverlässigen Kandidaten für Ihre Umgebung gemacht. Sein Hauptaugenmerk liegt auf Sicherheit und Zuverlässigkeit. Es verwendet OpenSSH für den Transport, und die Sprache ist so konzipiert, dass sie auch von denen überprüft werden kann, die mit dem Programm nicht vertraut sind. Ansible ist ausreichend geeignet, um sowohl kleine Setups mit einer Handvoll Instanzen als auch Unternehmensumgebungen zu verwalten.


Linux
  1. So installieren und testen Sie Ansible unter Linux

  2. Installieren und konfigurieren Sie Ansible unter Linux

  3. So installieren und konfigurieren Sie Ansible unter Rocky Linux/CentOS 8

  4. So installieren und konfigurieren Sie TensorFlow unter Rocky Linux 8

  5. So installieren und konfigurieren Sie EMC PowerPath unter Linux

So installieren und konfigurieren Sie Slack auf Linux-Distributionen

So installieren und konfigurieren Sie Perf in Linux-Distributionen

So installieren und konfigurieren Sie Terraform in Linux-Distributionen

So installieren und konfigurieren Sie Gradle auf Linux-Distributionen

So installieren und konfigurieren Sie Git auf Linux-Distributionen

So installieren und konfigurieren Sie Yarn auf Linux-Distributionen