English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Erfahren Sie mehr über Ansible Playbook zur Automatisierung der Aufgaben

ansible Spielbuch
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Erfahren Sie mehr über Ansible Playbook, um die Aufgaben zu automatisieren.

Zuvor haben wir diskutiert Ansible Einführung, InstallationsanleitungLassen Sie uns als nächstes über Playbook und seine Bausteine ​​sprechen.

What is Ansible Playbook?

Das Playbook ist die Ansible-Automatisierungssprache. Es ist eine einfache Datei mit einer Reihe von Anweisungen. In Playbooks definieren wir, was Ansible tun soll. Playbooks enthalten Spiele, in denen Aufgaben ausgeführt werden, und in diesen Aufgaben werden Module ausgeführt. Ihre Aufgaben werden nacheinander ausgeführt.

Zum Beispiel kann es so einfach sein, eine Reihe von Befehlen auf verschiedenen Servern in einer Sequenz auszuführen und diese Server der Reihe nach neu zu starten. Oder es kann so komplex sein wie das Bereitstellen und Bereitstellen von Hunderten von VMs in einer öffentlichen und privaten Cloud, einschließlich Lastausgleich, Überwachung und Netzwerkeinstellungen.

Playbook Language

Playbooks sind einfache Dateien, die in YAML-Code geschrieben sind.

YAML ist eine Datenserialisierungssprache. Es ist menschlich und maschinenlesbar. Sie benötigen keine speziellen Codierungsfähigkeiten, um YAML-Codes zu schreiben. Sie können sich die Datenserialisierungssprache als Übersetzer vorstellen, um Ihre gesamte Datenstruktur aufzuschlüsseln und in einer Reihenfolge zu serialisieren, die für die spätere Verwendung erneut rekonstruiert werden kann. Sie können diese rekonstruierte Datenstruktur in derselben Umgebung oder sogar in einer anderen Umgebung verwenden.

Unten finden Sie eine YAML-Beispieldatei zum Installieren von MySQL:

---
- name: Install MySQL
  hosts: geekflare-mysql-service
  tasks:
    - name: Install MySQL
      action: $ansible_pkg_mgr pkg=mysql-server state=installed
    - name: Add Python MySQL DB
      action: $ansible_pkg_mgr pkg=python-mysqldb state=installed

Ansible Playbook Basics

Dieser Teil des Artikels behandelt die grundlegenden Ansible-Konzepte, um mehr über Ansible Playbook zu erfahren.

Hosts und Benutzer

Ansible benötigt Zielcomputer in der Infrastruktur, auf denen Spiele aus dem Ansible-Playbook bereitgestellt werden müssen. Hosts werden über ihre IP-Adressen zum Ansible-Inventar hinzugefügt. Hosts sind eine Liste von einer oder mehreren Gruppen oder Hostmustern, die durch einen Doppelpunkt getrennt sind. Der remote_user enthält den Namen des Benutzerkontos.

---
- hosts: ProdServers
  remote_user: geekflare

Variablen

Mit Variablen können Sie die Ausführung eines Playbooks ändern. Sie können fast überall im Playbook verwendet werden und können von einem Inventar geerbt werden, das explizit zur Laufzeit festgelegt wurde und zu Beginn eines Playbook-Laufs ermittelt wurde. Sie können einen Variablennamen mit Buchstaben, Zahlen und Unterstrichen definieren, dieser darf jedoch nur mit einem Buchstaben beginnen.

Beispielsweise ist port_01 eine gültige Variable, während 01_post eine ungültige Variable ist. Hier ist ein Beispiel für Variablen in einem Ansible Playbook:

vars:
    http_port: 80
    max_clients: 200

Die Vorräte

Um ein Playbook auszuführen, benötigen Sie eine Liste von Zielen, auf denen die Automatisierung stattfinden soll. Dies ist, was ein Inventar tut. Inventarlisten können auf verschiedene Arten erstellt und gespeichert werden, einschließlich statischer Dateien, dh Ansible Hosts. Oder es kann dynamisch über ein Inventarskript generiert werden, das eine Liste von Hosts für eine externe Quelle abruft.

Sie können eine Variable auch als Teil einer Inventarliste angeben. Inventare sind letztendlich eine Liste von Dingen, die Sie automatisieren möchten.

[webservers]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

Aufträge

Spiele in ansible Playbook-Ausführungsaufgaben. Die Aufgabe ist für die Ausführung von Ansible-Modulen verantwortlich. Es kann jeweils nur eine Aufgabe ausgeführt werden, und Aufgaben werden in sequentieller Reihenfolge ausgeführt. Ihre Aufgaben sind in YAML geschrieben, einer Sprache, die Englisch ähnelt.

Beispiele: Installieren von Paketname, Aktualisieren des Software-Namens usw. Nachfolgend finden Sie ein Beispiel für eine Aufgabe im Ansible-Playbook zum Installieren von httpd:

tasks:
  - name: Install httpd Package
    yum: name=httpd state=latest

Handler

Handler sind eine besondere Art von Aufgaben.

Sie können durch eine Aufgabe ausgelöst werden und werden am Ende des Spiels einmal ausgeführt. Es wird verwendet, um Benachrichtigungen zu senden, wenn sich Änderungen an der Konfigurationsdatei ergeben, z. B. um den Dienst zu benachrichtigen, um Apache nach der Installation zu starten. Die Syntax "Benachrichtigen" wird zum Aufrufen von Handlern verwendet. Unten finden Sie ein Beispiel für einen Handler zum Neustarten von Apache:

---
- hosts: all
  tasks:
  - name: ensure apache is at the latest version
    yum: name=httpd state=latest
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

Create and Run Your First Ansible Playbook

Lassen Sie mich Ihnen sagen, wie man ein Spielbuch schreibt. Jedes Spielbuch beginnt mit drei Strichen (-) oben.

Das erste, was Sie in einem Ansible Playbook erwähnen, sind die Host-Computer, auf denen Sie das Playbook ausführen möchten.

Dann können Sie Variablen erwähnen, indem Sie Fakten sammeln. Dann können Sie die verschiedenen Aufgaben erwähnen, die Sie ausführen möchten. Denken Sie jetzt daran, dass die Aufgabe in derselben Reihenfolge ausgeführt wird, in der Sie sie geschrieben haben. Wenn Sie beispielsweise zuerst Software A und dann Software B installieren möchten, stellen Sie sicher, dass die erste im Playbook geschriebene Aufgabe darin besteht, Software A zu installieren, und dass die nächste Aufgabe Software B installieren kann.

Dann haben Sie unten Handler. Die Handler sind ebenfalls Aufgaben, aber der Unterschied besteht darin, dass Sie Handler ausführen, für die Sie eine Art Trigger in der Liste der Aufgaben benötigen, um Handler auszuführen.

Lassen Sie mich Ihnen zeigen, wie Sie ein ansibles Playbook erstellen, um nginx auf einem Host zu installieren, zu starten und zu starten.

Erstellen Sie eine .yml-Datei, in der Sie Ihre YAML-Codes für die Erstellung eines ansiblen Playbooks ablegen.

gedit nginx.yml

Fügen Sie den folgenden YAML-Code in diese Datei ein und speichern Sie die Datei.

---
- hosts: Client
  sudo: yes
  vars:
    - server_port: 8080

  tasks:
    - name: Installs nginx web server
      apt: pkg=nginx state=installed update_cache=true
      notify:
        - start nginx

  handlers:
    - name: start nginx
      service: name=nginx state=started

Die obige YAML-Datei beginnt mit GastgeberIch möchte dieses Playbook auf dem Client-Computer (Client) ausführen. Die Client-IP-Adresse ist bereits in gespeichert /etc/ansible/hosts Datei.

In der nächsten Zeile können Sie die Aufgaben mit ausführen sudo Privilegien.

Dann habe ich definiert Server Port als Variable in diesem Spielbuch.

Dann kommt mein erster Auftrag in diesem ansible Playbook, um einen Nginx-Webserver zu installieren. Diese Aufgabe hat auch benachrichtigen Parameter, dh nach dieser Aufgabe einen Handler mit run.

Schließlich habe ich eine geschrieben Handler um nginx auf dem Client-Computer zu starten.

Nachdem Sie mit den YAML-Codes im Ansible-Playbook klar sind, führen Sie das Playbook aus. Unten finden Sie die Syntax zum Ausführen eines ansiblen Playbooks:

ansible-playbook file_name.yml

Jetzt werde ich das Ansible-Playbook ausführen, das ich zum Installieren und Starten von Nginx erstellt habe.

root@geekflare:/home/geekflare# ansible-playbook nginx.yml 

PLAY [Client] ******************************************************************

TASK [Gathering Facts] *********************************************************
ok: [node1]

TASK [Installs nginx web server] ***********************************************

changed: [node1]

RUNNING HANDLER [start nginx] **************************************************
ok: [node1]

PLAY RECAP *********************************************************************
node1                      : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Nginx-Server vom ansible-Playbook installiert und korrekt gestartet wurde.

root@geekflare:/home/geekflare# ps waux | grep nginx
root      3021  0.0  0.0  77676  1516 ?        Ss   15:27   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

Conclusion

Das war über Ansible Playbook. Ich hoffe, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie ein Ansible-Playbook erstellen und ausführen können. Schau dir das an Kurs, wenn Sie erweiterte Themen in Ansible lernen möchten, einschließlich Rollen, Jinja2, Lookups, Filter, Benutzerdefinierte Module.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder