So verwenden Sie Ansible -Module für Systemverwaltungsaufgaben - Teil 6

So verwenden Sie Ansible -Module für Systemverwaltungsaufgaben - Teil 6

In diesem Teil 6 Von Ansible -Serien haben wir in den vergangenen Themen einige Ansible -Module behandelt. Wir werden nun tiefer gehen und zusätzliche Module entdecken, die bei der Ausführung einer Reihe von Aufgaben der Systemverwaltung hilfreich sind.

Sie erhalten eine grundlegende Vorstellung von jedem Modul und prüfen die Möglichkeiten für die Erledigung bestimmter Aufgaben.

Auf dieser Seite:
  1. Verwalten von Softwarepaketen und Repositories in Ansible
  2. Verwalten von Diensten mit Ansible
  3. Firewall mit Ansible verwalten
  4. Archivierungsdateien oder Ordner mit Ansible
  5. Planen Sie Aufgaben mit Ansible
  6. Verwalten Sie Benutzer und Gruppen mit Ansible
  7. Erstellen Sie Dateien und Verzeichnisse mit Ansible
  8. Speicher mit Ansible verwalten
  9. Verwalten von Dateisystemen mit Ansible

1. Verwalten von Softwarepaketen und Repositories in Ansible

Bei der Installation von Paketen auf Linux -Systemen werden verschiedene Verteilungen mit verschiedenen Paketmanagern geliefert. Für Roter Hut Verteilungen haben wir yum & dnf, während für für Debian Aromen, es gibt passend.

Ansible wird mit einem Modul genannt Paket, Dies beseitigt die Notwendigkeit, verschiedene Paketmanager für verschiedene Systeme zu verwenden. Es verwendet automatisch den entsprechenden Paketmanager des Host -Systems, wodurch die Arbeit erleichtert wird.

Softwarepakete installieren

Zum Beispiel, um HTOP in einer Gruppe von zu installieren Gastgeber bestehend aus beiden Debian & Roter Hut Distolen verwenden die Paket Modul wie in der gezeigt Install_htop.YML Spielbuch unten.

--- - Name: Installieren Sie HTOP auf Ubuntu und CentOS Hosts: Alle Aufgaben: - Paket: Name: HTOP -Status: Installiert 
Installieren Sie die Software mit dem Ansible -Paketmodul

NOTIZ: Paketnamen können von einem Betriebssystem zu einem anderen unterscheiden. Zum Beispiel haben wir httpd In Roter Hut Verteilungen und Apache2 für Debian/Ubuntu Systeme, die alle den Apache -Webserver bezeichnen. Daher sollte beim Übergeben dieser Pakete zusätzliche Vorsicht genommen werden. Normalerweise ist es am besten, Variablen oder bedingte Aussagen zu verwenden.

2. Verwalten von Diensten mit Ansible

Als nächstes haben wir eine Service Modul, das zum Verwalten von Diensten auf Linux -Systemen verwendet wird. Es wird verwendet, um einen Service zu starten, anzuhalten oder neu zu starten. Sie können es auch verwenden, um einen Dienst zu aktivieren, damit beim Stiefeln ein System den Dienst automatisch startet.

Starten Sie und aktivieren Sie einen Service

Zum Beispiel zum Starten und Aktivieren von Apache -Webserver auf Rhel 8, Verwenden Sie den Dienst wie gezeigt.

--- - Name: Start und aktivieren HTTPD -Dienst Hosts: Webservers Aufgaben: - Service: Name: HTTPD STATE: GEFTRETTE VERFÜGBAR: Ja 
Dienste mit Ansible verwalten

Einen Service stoppen

Stoppen httpd Dienst, übergeben Sie die gestoppt Attribut.

--- - Name: Stop httpd Service Hosts: Webservers Aufgaben: - Service: Name: Httpd Staat: gestoppt 
Der Service mit Ansible einstellen

Starten Sie einen Service neu

Neustarten httpd Dienst, übergeben Sie die neu gestartet Attribut.

--- - Name: Neustart HTTPD Service Hosts: Webservers Aufgaben: - Service: Name: Httpd Zustand: Neu gestartet 
Service mit Ansible neu starten

3. Firewall mit Ansible verwalten

Ein weiterer wichtiger Aufgabensystemadministratoren ist die Verwaltung der Firewall. In Ansible Playbooks wurde dies mit dem viel einfacher gemacht Firewall Und UFW Module. Sie können die Firewall konfigurieren, um einen Port oder Dienst oder sogar eine Quelladresse zuzulassen oder zu blockieren oder zu blockieren.

Lassen Sie uns einspringen und uns ein paar Beispiele ansehen:

Öffnen/Blockport 80 in Firewalld

--- - Name: Port 80 Hosts zulassen: Webservers -Aufgaben: -Firewalld: Port: 80/TCP Permanent: Ja Zustand: aktiviert 

Im Spielbuch oben, Port 80 ist über die Firewall erlaubt.

Die Option Permanent: Ja erzwingt die Firewall -Regel und macht sie bei den Neustarts bei. Diese Regel gilt jedoch nicht sofort. Es tritt erst nach einem Neustart in Kraft. Verwenden Sie die Option, um die Regel sofort durchzusetzen Sofort: Ja.

Verwenden Sie die zulässigen Adressen, um die zulässigen Adressen anzugeben Quelle: 0.0.0.0/0 Stellungnahme.

- Firewall: Quelle: 192.168.0.0/24 Zone: öffentlicher Staat: aktiviert 

Um eine Reihe von Ports anzugeben, die die Option Port wie folgt verwenden dürfen:

- Firewalld: Port: 213-567/UDP dauerhaft: Ja Zustand: aktiviert 

Um den Port zu blockieren, ändern Sie die Statusoption auf Behinderte wie gezeigt:

-Firewalld: Port: 80/TCP Dauerhaft: Ja Zustand: Behindert 

Fügen Sie einen Dienst in Firewall hinzu/blockieren Sie

Neben dem Hinzufügen/Blockieren eines Ports können Sie auch dieselben Regeln für einen Dienst anwenden. Und es ist ganz einfach. Benutze einfach die Service Modul und fügen Sie den zugegebenen Dienst an und stellen Sie sicher, dass die Statusoption auf festgelegt ist ermöglicht.

- Firewalld: Service: Https dauerhaft: wahr Zustand: aktiviert 

Um den Dienst zu blockieren, setzen Sie die Zustand Option zu Behinderte.

- Firewalld: Service: Https dauerhaft: wahr Zustand: Behindert 

4. Archivierungsdateien oder Ordner mit Ansible

Das Archivieren bezieht sich auf die Komprimierung einer Datei oder eines Ordners zu einem Format, das leicht tragbar und kleiner ist. Ansible Schiffe mit einem Modul genannt Archiv. Das Komprimieren einer Datei ist ungefähr so ​​einfach wie es nur geht. Alles, was erforderlich ist, müssen den Quellpfad der Datei und das Ziel der komprimierten Datei angeben.

Ein Verzeichnis komprimieren

Betrachten Sie ein Spielbuch Kompresse.YML unter.

--- - Hosts: Webservers -Aufgaben: • Name: Kompress Ein Ordnerarchiv: Pfad:/opt/data/web dest:/tmp/web.gz 

Das obige Spielbuch komprimiert die /opt/data/web Verzeichnis und rettet es vor /TMP/Web.gz.

Erstellen Sie Archiv mit Ansible

Komprimieren Sie ein Verzeichnis mit Format

Das Standardkomprimierungsformat ist .gz, Dies kann jedoch unter Verwendung des Formatattributs angegeben werden. Probieren Sie das nächste Spielbuch.

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie ein ZIP -Archivarchiv: Pfad:/opt/data/web dest:/tmp/web Format: ZIP 

Das Spielbuch über komprimiert sich /opt/data/web Verzeichnis an /TMP/Web.Reißverschluss.

Eine Datei entfernen

Sie können eine komprimierte Datei auch mit der ungarchiv Attribut. Betrachten Sie das Spielbuch unten.

--- - Hosts: Webservers -Aufgaben: - Name: unkompliziert /TMP /Web.GZ to/opt Directory auf dem Ansible Controller Unarchive: src:/tmp/web.bz2 dest: /opt / 

Das Spielbuch oben enthält die Datei /opt/data/web.gz Zu /opt auf dem Ansible Controller.

Eine Datei auf dem Remote -Knoten entfernen

Um das Remote -Quellsystem anzugeben, verwenden Sie die Remote_Src = Ja Möglichkeit.

--- - Hosts: Webservers -Aufgaben: - Name: unkompliziert /TMP /Web.BZ2 bis/entscheiden Sie sich auf Remote -Host unarchive: src:/tmp/web.bz2 dest: /opt / Remote_Src = Ja 

Das Spielbuch oben enthält die Datei /TMP/Web.BZ2 auf dem Remote -Knoten an die /opt/opt/ Verzeichnis.

5. Planen Sie Aufgaben mit Ansible

Der Cron Modul Hilft bei der Planung von Jobs in ansiblen Playbooks.

Erstellen Sie eine geplante Aufgabe

Betrachten Sie das Spielbuch unten.

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie eine geplante Aufgabe.SH Monat: 4 Tag: 5 Stunden: 17 Minute: 00 

Das Spielbuch führt das Anwesenheitsskript am 5. April um 17:00 Uhr aus.

Planen Sie ein Skript zu einem bestimmten Datum

Wenn Sie dieses Skript nur dann ausführen möchten, wenn der 5. Apriltag ein Montag ist, dann verwenden Sie das Attribut Wochentags: 1. 0 bezeichnet Sonntag und 6, die den Samstag laut Cron Notation bezeichnet.

Monat: 4 Tag: 5 Stunden: 17 Minute: 00 Wochentag: 1 

Ein Sternchen (*) In einem dieser Felder gibt es einen beliebigen Wert an.

Führen Sie einen Job zu einem Date durch

Verwenden Sie die Zeitparameter wie gezeigt, um den Job am 5. April um 17:00 Uhr zu leiten, unabhängig vom Wochentag.

Monat: 4 Tag: 5 Stunden: 17 Minute: 00 Wochentag: * 

Führen Sie jeden Monat einen Job an einem bestimmten Tag aus

Um den Cron -Job am 5. Tag eines jeden Monats um 17:00 Uhr auszuführen, verwenden Sie die folgenden Einstellungen.

Monat: * Tag: 5 Stunden: 17 Minute: 00 Wochentag: * 

Führen Sie täglich einen Job auf

Um den Cron -Job täglich um 17:00 Uhr auszuführen, setzen Sie die Zeiteinstellungen wie gezeigt fest:

Monat: * Tag: * Stunde: 17 Minute: 00 Wochentag: * 

Führen Sie alle 5 Stunden einen Job aus

Verwenden Sie den Schrittwert, um den Cron -Job alle 5 Stunden auszuführen */5 wie gezeigt.

Monat: * Tag: * Stunde: */5 Minute: * Wochentag: * 

6. Verwalten Sie Benutzer und Gruppen mit Ansible

Sie können Benutzer und Gruppen auch mühelos in Ansible Playbooks verwalten.

Erstellen Sie einen neuen Benutzer

Verwenden Sie das, um einen neuen Benutzer zu erstellen, die Benutzer Modul wie gezeigt.

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie einen neuen Benutzerbenutzer: Name: Jack 

Sie können auch zusätzliche Optionen wie UID und Gruppen hinzufügen.

- Name: Erstellen Sie einen neuen Benutzer Benutzer: Name: Jack Kommentar: Jack Peters UID: 1002 Gruppe: Administratoren Shell: /bin /bash 

Einen Benutzer entfernen

Verwenden Sie den Benutzer, um den Benutzer zu entfernen Entfernen: Ja Stellungnahme.

- Name: Entfernen Sie den Benutzer 'Jack' Benutzer: Name: Jack Status: abwesend Entfernen: Ja 

Erstellen Sie eine neue Gruppe

Verwenden Sie die neue Gruppe, um eine neue Gruppe zu erstellen Gruppe Modul.

- Name: Erstellen einer Gruppengruppe: Name: Entwickler 

7. Erstellen Sie Dateien und Verzeichnisse mit Ansible

Verwenden Sie das Erstellen von Verzeichnisdateien Datei Modul.

Erstellen Sie ein neues Verzeichnis

Zum Beispiel ein neues Verzeichnis erstellen.

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie eine neue Verzeichnisdatei: Pfad: /opt /App Status: Verzeichnis 

Sie können andere Attribute wie Eigentümer, Gruppen- und Dateiberechtigungen hinzufügen.

- Hosts: Webservers-Aufgaben:-Name: Erstellen Sie eine neue Verzeichnisdatei: Pfad: /opt /Webstatus: Verzeichnis Eigentümer: www-data Gruppe: www-data modus: 0644 

Zusätzlich können Sie Verzeichnisse rekursiv mit der Erstellung des Wiederholung: Ja Stellungnahme.

--- - Hosts: Webservers-Aufgaben:-Name: Verzeichnisse erstellen rekursiv Datei: Pfad:/opt/web/App Status: Verzeichnis Eigentümer: www-data Gruppe: www-data modus: 0644 recurse: yes 

Eine Datei erstellen

Verwenden Sie zum Erstellen einer Datei die Zustand: Berührung Möglichkeit.

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie eine neue Dateidatei: Pfad:/opt/web/index.html Zustand: Berührung Besitzer: www-data Gruppe: www-data Modus: 0644 

8. Speicher mit Ansible verwalten

Der LVG Das Modul wird verwendet, um LVM -Volumina und Gruppen zu konfigurieren.

Erstellen Sie eine LVM -Volumengruppe

Betrachten Sie das Spielbuch unten:

--- - Hosts: Webservers -Aufgaben: • Name: Erstellen Sie LVM Volumengruppe LVG: VG: VG1 PVS: /Dev /SDA1 Pesize: 32 

Dadurch schafft eine Volumengruppe oben auf /dev/sda1 Trennwand mit einer physischen Größe von 32 MB.

Verwenden Sie nach dem Erstellen die Lvol Modul, um ein logisches Volumen wie gezeigt zu erstellen

Erstellen Sie ein logisches Volumen

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie LVM Volumen LVOL: VG: VG1 LV: LVOL1 PVS: /Dev /SDA1 

9. Verwalten von Dateisystemen mit Ansible

Verwenden Sie das, um ein Dateisystem auf einem Blockgerät zu erstellen, die Dateisystem Modul.

Erstellen Sie ein Dateisystem

Das unten stehende Spielbuch erstellt den Dateisystemtyp von xfs auf dem Blockvolumen.

--- - Hosts: Webservers -Aufgaben: - Name: Erstellen Sie ein Dateisystem -Dateisystem: fstype: xfs dev:/dev/vg1/lvol1 

Ein Dateisystem montieren

Sie können als nächstes mit dem Blockvolumen fortfahren montieren Modul wie im unten stehenden Spielbuch gezeigt:

--- - Hosts: Webservers -Aufgaben: - Name: Mount Ein Dateisystem Mount: Fstype: xfs src:/dev/vg1/lvol1 path:/opt/webstatus: montiert montiert 
Abschluss

Dies schließt das Thema ab. Wir haben verschiedene Systemverwaltungsaufgaben behandelt, die durch bestimmte integrierte Module in ansiblen Playbooks erledigt werden können.