• Erledigen Sie die Anwendungssicherheit auf die richtige Weise! Erkennen, schützen, überwachen, beschleunigen und mehr…
  • Erste Schritte mit Ansible unter Ubuntu für eine bessere Bereitstellung der Umgebung und ein besseres Konfigurationsmanagement.

    Konfigurationsmanagement ist eine entscheidende Phase in DevOps Lebenszyklus. Es hilft bei der Automatisierung und Orchestrierung der IT-Infrastruktur.

    Es gibt verschiedene Tools für das Konfigurationsmanagement, z. B. Puppet, Ansible, Chef, SaltStack. Und natürlich, Ansible Dies ist eines der beliebtesten Tools in DevOps. Es kann problemlos Tausende von Servern und Ihre gesamte IT-Infrastruktur verwalten.

    Wir werden in diesem Artikel Folgendes behandeln.

    • Ansible Installation
    • SSH-Schlüsselaustausch
    • Ansible Client-Setup
    • Ansible Tests

    Wenn Sie ein absoluter Anfänger sind, lesen Sie diesen Ansible-Einführungsbeitrag.

    Ansible-Installation

    Versuchen wir zur Vereinfachung, Ansible auf zwei Servern zu verwenden. Einer ist ein Ansible-Server und ein anderer ein Ansible-Client mit der folgenden IP.

    • Ansible-Server - 10.0.0.1
    • Ansible-Client - 10.0.0.25

    Die Installation ist unkompliziert. Die folgenden Schritte müssen auf allen Servern ausgeführt werden, auf denen Sie Ansible verwenden möchten. In diesem Fall auf beiden Servern.

    • Führen Sie den folgenden Befehl aus, um die für die Installation von ansible erforderliche Software zu installieren.
    [email protected]:~# apt install software-properties-common
    • Installieren Sie das Repository mit ansible Paket.
    [email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
    • Aktualisieren Sie das erweiterte Verpackungstool (apt)
    [email protected]:~# apt update
    • Führen Sie abschließend den folgenden Befehl aus, um die Installation durchzuführen
    [email protected]:~# apt install ansible

    Die Installation des erforderlichen Pakets dauert einige Sekunden.

    Wie stellen Sie sicher, dass es installiert ist und seine Version?

    Nun, es ist einfach. Sie können verwenden --version Syntax mit ansible wie unten herauszufinden.

    [email protected]:~# ansible --version
    ansible 2.8.1
      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.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
    [email protected]:~#

    Wie Sie sehen können, ist Ansible 2.8.1 installiert und enthält die erforderlichen Informationen wie den Speicherort der Konfigurationsdatei und das Python-Modul.

    Als nächstes müssen wir den SSH-Schlüsselaustausch durchführen, damit der Dienst ausgeführt werden kann und ein Client miteinander sprechen kann.

    SSH-Schlüsselaustausch

    Ansible stellt über SSH (Secure Shell) eine Verbindung zu seinem Client her.

    Wir werden zuerst einen öffentlichen Schlüssel auf dem Ansible-Server generieren, der auf den Ansible-Client kopiert werden muss.

    Stellen Sie sicher, dass Sie als Root-Benutzer angemeldet sind.

    • Generieren Sie den Schlüssel mit ssh-keygen Befehl wie unten gezeigt
    [email protected]:~# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    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:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A [email protected]
    The key's randomart image is:
    +---[RSA 2048]----+
    |    =.+oo .      |
    |   . B.B.= .     |
    |  . o @oE +      |
    |   . *oO * .     |
    |    o++.S + .    |
    |   .o +o . +     |
    |    .o..o +      |
    |     ..o o .     |
    |       .o o.     |
    +----[SHA256]-----+
    [email protected]:~#

    Wie Sie bemerkt hätten, hat es einen öffentlichen Schlüssel in der generiert .ssh Ordner. Der vollständige Pfad lautet /root/.ssh/id_rsa.pub

    Hinweis: Stellen Sie sicher, dass die privaten und öffentlichen Schlüsseldateien nicht weltweit lesbar sind. Sie können die Dateien auflisten, um sie zu überprüfen.

    • Wechseln Sie in den Ordner .ssh
    cd /root/.ssh
    • Listen Sie die Dateien auf
    [email protected]:~# ls -l 
    -rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
    -rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

    Wenn Sie feststellen, dass die Berechtigung falsch ist, können Sie sie mithilfe von ändern chmod Befehl

    Ex:

    chmod 400 id_rsa
    chmod 400 id_rsa.pub

    Kopieren wir den öffentlichen Schlüssel auf den Ansible-Host mit der IP-Adresse 192.168.56.101

    [email protected]:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
    ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
    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
    [email protected]'s password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh '[email protected]'"
    and check to make sure that only the key(s) you wanted were added.
    
    [email protected]:~/.ssh#

    Sie können in der Ausgabe oben sehen, dass 1 Schlüssel erfolgreich hinzugefügt wurde. Dies zeigt an, dass der SSH-Schlüssel ausgetauscht wird.

    Als nächstes richten wir einen Ansible-Client ein.

    Ansible-Client-Setup

    Ich gehe davon aus, dass Sie die Ansible-Installationsschritte auf dem Client-Server bereits ausgeführt haben, wie in den vorherigen Schritten erläutert.

    Das Client- oder Host-Setup ist nichts anderes, als den Ansible-Server auf die Clients aufmerksam zu machen. Und dazu:

    • Melden Sie sich beim Ansible-Server an
    • Gehen Sie zu / etc / ansible
    • Fügen Sie Folgendes in die Hosts-Datei ein, indem Sie Ihren bevorzugten Editor verwenden
    [Client] 
    node1 ansible_ssh_host=10.0.0.25
    • Speichern Sie die Hosts-Datei

    Ansible-Test

    Wenn Sie alle Schritte korrekt ausgeführt haben, erhalten Sie eine ERFOLG Meldung, wenn Sie den folgenden Befehl auf dem Ansible-Server ausführen.

    [email protected]:~/.ssh# ansible -m ping Client
    node1 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python3"
        }, 
        "changed": false, 
        "ping": "pong"
    }
    [email protected]:~/.ssh#

    Die obigen Pings an den Client, um die Konnektivität zu testen und zu bestätigen, ob sie gut ist oder nicht.

    Fazit

    Ich hoffe, dies gibt Ihnen eine Idee, wie Sie mit der Installation und dem Herumspielen beginnen können. Weitere Ansible-Tutorials finden Sie hier Udemy Mastering Ansible Kurs.