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

So konfigurieren Sie Netzwerkeinstellungen mit Ansible-Systemrollen

Dies ist der zweite Artikel in dieser Reihe, in dem Ansible-Systemrollen verwendet werden. Im vorherigen Artikel habe ich Ihnen Ansible und Systemrollen vorgestellt und einige Beispiele gegeben. Systemrollen helfen Ihnen bei der Verwaltung von Aufgaben auf Betriebssystemebene wie SELinux, Verwaltung von Netzwerkeinstellungen, NTP usw. In diesem Artikel haben Sie ein Beispiel gesehen, in dem Sie den SELinux-Modus mit system.role-selinux geändert haben Rolle. In diesem Artikel schaue ich mir die Netzwerkrolle im Detail an, damit Sie die Netzwerkverbindungen der Remote-Maschine mit einem einzigen Playbook ändern können.

NetworkManager verwaltet Netzwerkeinstellungen wie die Konfiguration der Netzwerkschnittstelle sowie der Verbindung. Im Grunde ist es ein Daemon, der Netzwerkeinstellungen überwacht und verwaltet. Es verwendet eine Datei in /etc/sysconfig/network-scripts um sie zu speichern. nmcli ist das Dienstprogramm, das zum Erstellen und Bearbeiten von Verbindungsdateien über eine Shell-Eingabeaufforderung verwendet wird. Um die Verbindungen Ihres lokalen Rechners aufzulisten, verwenden Sie:

$ nmcli dev status

DEVICE		TYPE		STATE			CONNECTION
eno0		ethernet	connected		eno0
eno1		ethernet	disconnected		---
virbr0		bridge		connected		virbr0

In der obigen Ausgabe sehen Sie verschiedene Spalten. Die erste Spalte, DEVICE , gibt die Netzwerkschnittstelle an. Der TYP Spalte zeigt an, um welche Art von Verbindung es sich handelt. Der STAAT Spalte gibt den Status der Verbindung an und die letzte Spalte CONNECTION , ist eine Sammlung von Einstellungen, die für ein Gerät konfiguriert werden können. Jede Verbindung hat einen Namen oder eine ID, die sie identifiziert.

Um eine Liste aller Verbindungen anzuzeigen, können Sie verwenden:

$ nmcli con show

Mit nmcli können Sie Netzwerkverbindungen hinzufügen und IPv4- oder IPv6-Adressen zuweisen, um Netzwerkverbindungen zu erstellen. Wie Sie wissen, möchten Sie jedoch manuelle Aufgaben automatisieren, die Sie normalerweise mit nmcli erledigen würden . Sie möchten Netzwerkknoten mithilfe eines Ansible-Playbooks verwalten.

In Ansible haben Sie drei wichtige Module, die Ihnen bei der Verwaltung von Knoten helfen:Service, Daemon und Systemeinstellungen. Sie können diese Module auch verwenden, um Netzwerke zu verwalten. Im vorherigen Artikel habe ich Ansible-Systemrollen besprochen. In Systemrollen haben Sie das rhel-system-roles.network -Rolle, die die einfachste Möglichkeit zum Konfigurieren und Verwalten von Netzwerkeinstellungen auf verwalteten Knoten darstellt.

Beginnen Sie mit der Verwendung dieses Netzwerksystems Rolle zum Konfigurieren von Netzwerkeinstellungen auf einem verwalteten Knoten.

Hier haben Sie den server1.example.com verwaltete Maschine. Ich habe bereits den Eintrag des verwalteten Knotens in der Bestandsdatei erstellt.

Hinweis :Stellen Sie sicher, dass Ihr verwalteter Knoten über zwei Ethernet-Verbindungen verfügt, da er eine neue Verbindung hinzufügt. Diese zweite Netzwerkschnittstelle muss verfügbar sein.

Vergewissern Sie sich vor dem Ausführen von Vorgängen, dass der NetworkManager-Dienst auf Ihrem verwalteten Knoten gestartet und aktiviert ist. Verwenden Sie dazu ein Playbook. Verwenden Sie für diese Aufgabe das Dienstmodul in service.yml Datei.

---
- name: playbook for starting and enabling the NetworkManager
  hosts: server1.example.com
  tasks:
  -    Name: start the service
       service:
         name: NetworkManager
         state: started
         enabled: true

Führen Sie dieses Playbook aus:

$ ansible-playbook service.yml

Wenn das Playbook erfolgreich und fehlerfrei ausgeführt wird, wird der Dienst gestartet und auf dem verwalteten Knotencomputer aktiviert.

Der Name der sekundären Schnittstelle ist eno1 damit Sie die MAC-Adresse dieser Schnittstelle finden können. Da Sie diese MAC-Adresse verwenden, findet Ihr Playbook die sekundäre Schnittstelle heraus. Zeigt die MAC-Adresse von eno1 an mit:

$ ip a

Die MAC-Adresse von server1.example.com ist 52:54:00:fe:2f:b8 . Verwenden Sie dies im Playbook.

Installieren Sie jetzt nach der Dienstaufgabe system-roles auf dem Controller:

$ yum install rhel-system-roles

Dieser Befehl installiert alle Systemrollen im Standardverzeichnis der Rolle.

Schreiben Sie jetzt ein Playbook, um eine neue Verbindung auf dem verwalteten Knoten hinzuzufügen:

---
- name: playbook for configuring second interface
  hosts: server1.example.com
  vars:
     target_mac: “52:54:00:fe:2f:b8”
     network_connection:
          -  name: static-network
             type: ethernet
             mac: “{{ target_mac }}”
             state: up
             ip :
               dhcp: no
               address:
                    -  192.168.0.5/24
  roles:
   -    rhel-system-roles.network

Dies ist ein vollständiges Spielbuch. Ich erkläre Ihnen jeden Parameter Schritt für Schritt:

target_mac - Dies ist die MAC-Adresse der zweiten Ethernet-Schnittstelle. Dies hilft dabei, die richtige Schnittstelle auf einem verwalteten Knoten herauszufinden.

network_connection - Diese Variable enthält Informationen für neue Verbindungen:

  • name:Name der neuen Verbindung
  • Typ:neuer Verbindungstyp
  • mac:die target_mac-Variable
  • state:Aktivieren Sie die Verbindung mit up Möglichkeit
  • ip:DHCP-Option deaktivieren und mit diesem Parameter eine IP-Adresse zuweisen

Ich habe Variablen verwendet, die zum Ausführen der Netzwerksystemrolle erforderlich sind. Führen Sie nun dieses Playbook aus:

$ ansible-playbook networkconfiguration.yml

Dieses Playbook konfiguriert eine statische Netzwerkverbindung mit einer statischen IP-Adresse.

Um die Einstellungen zu überprüfen, melden Sie sich bei server1.example.com an und bestätigen Sie die neu hinzugefügte Verbindung:

$ nmcli connection show

NAME		UUID		TYPE		DEVICE
eno0		adc52c70-…	ethernet	eno0   
static-network	1be30687-…	ethernet	eno1   
virbr0		0a9de672-…	bridge		virbr0

Versuchen Sie ping die IP-Adresse des statischen Netzwerks Verbindung, und wenn es erfolgreich ist, haben Sie die neue Netzwerkverbindung erfolgreich hinzugefügt.

Überprüfen Sie, ob eine neue Verbindung erfolgreich hinzugefügt wurde oder nicht, indem Sie die Ad-hoc-Befehle von der Controller-Maschine verwenden:

$ ansible server1.example.com  -m shell -a 'nmcli con show'

Dieser Befehl zeigt Ihnen dieselbe Ausgabe wie in den vorherigen Schritten.

Abschluss

Dieser Artikel zeigt, dass Sie Netzwerkverbindungen mit Ansible-Systemrollen konfigurieren können. Dieses kleine Playbook reduziert manuelle Aufgaben und konfiguriert die Netzwerkverbindung vieler Computer auf einmal, indem es einfach eine Gruppe von Hosts erstellt. Diese Systemnetzwerkrollen prüfen während der Ausführung des Playbooks viele Parameter, bestätigen, dass NetworkManager ausgeführt wird, und testen die Konnektivität im Playbook selbst. Dies ist ein großartiges Beispiel dafür, wie Sie Systemrollen verwenden können, um Konfigurationen auf Ihren Systemen zu automatisieren.


Linux
  1. So verwenden Sie Ansible zum Einrichten der Systemüberwachung mit Prometheus

  2. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  3. Wie konfiguriert man Systemd, um ein einfaches Skript mit Standardio in einen Netzwerkdienst umzuwandeln?

  4. Gewusst wie:Erste Schritte mit Ansible

  5. So erhalten Sie Systemstatistiken mit node.js

So konfigurieren Sie die Netzwerkbrücke in Ubuntu

So konfigurieren Sie Linux als statischen Router

Wie konfiguriere ich VPN-Einstellungen?

So konfigurieren Sie PHP-FPM mit NGINX

So konfigurieren Sie die BoxTrapper-Einstellungen

So konfigurieren Sie eine statische IP-Adresse auf einem Linux-System