So verwenden Sie Ansible -Module für Systemverwaltungsaufgaben - Teil 6
- 3194
- 147
- Ilja Köpernick
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:
- Verwalten von Softwarepaketen und Repositories in Ansible
- Verwalten von Diensten mit Ansible
- Firewall mit Ansible verwalten
- Archivierungsdateien oder Ordner mit Ansible
- Planen Sie Aufgaben mit Ansible
- Verwalten Sie Benutzer und Gruppen mit Ansible
- Erstellen Sie Dateien und Verzeichnisse mit Ansible
- Speicher mit Ansible verwalten
- 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: InstalliertInstallieren 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: JaDienste 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: gestopptDer 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 gestartetService 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 AnsibleKomprimieren 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.
- « So erstellen Sie Vorlagen in Ansible, um Konfigurationen auf verwalteten Knoten zu erstellen - Teil 7
- Polo - Ein moderner leichter Dateimanager für Linux »