Automatisierte Betriebs- und Wartungstools - Ansible Einführung (2) Playbook

3. Implementieren Sie das Playbook #########

Das Ziel dieses Kapitels: Schreiben Sie ein grundlegendes ansible Spielbuch

3.1 Playbook schreiben und ausführen

3.1.1 Temporäre Befehle eines bestimmten Benutzers anzeigen

'Das yaml-Format hat normalerweise die Erweiterung yml, und yaml stellt keine strengen Anforderungen an die Einrückung, aber es gibt zwei Grundprinzipien.'
'1. Datenelemente auf derselben Ebene in derselben Hierarchie müssen dieselbe Einrückung haben.'
'2. Wenn das Element einem untergeordneten Element eines anderen Elements gehört, muss der Einzug größer sein als das übergeordnete Element. '

 ansible -m user -a "name=student uid=1000state=present" servera.lab.example.com

Fügen Sie hier eine Bildbeschreibung ein
Als Spielbuch umgeschrieben

[root@workstation ~]# cat user.yml

Fügen Sie hier eine Bildbeschreibung ein

---                                     开头三个破折号,文档的开始标记
- name: Configure User            可写可不写,但是建议使用

...                      结尾三个省略号,结束标记(通常省略)

Das Spiel selbst besteht aus einer Reihe von Schlüssel- und Wertepaaren. Die Schlüssel im selben Spiel sollten dieselbe Einrückung verwenden.
Hosts ist ein Schlüssel, und der folgende Inhalt ist der Wert. Dies ist eine verschachtelte Sammlung.

Playbook-Ausführung:
Fügen Sie hier eine Bildbeschreibung ein

3.1.2 Apache installieren

Erstellen Sie ein neues Verzeichnis für eine einfache Bedienung

mkdir /demo
vim webserver.yml

Fügen Sie hier eine Bildbeschreibung einFügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Es ist ersichtlich, dass der httpd-Dienst installiert wurde.

3.1.3 Stellen Sie sicher, dass der httpd-Dienst gestartet ist

vim service.yml

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Wirkung:
Fügen Sie hier eine Bildbeschreibung ein

3.1.4 Verbessern Sie die Detailgenauigkeit der Ausgabe

Die Standardausgabe von ansible-playbook enthält keine detaillierten Informationen zur Aufgabenausführung. Der Parameter -v bietet vier Ebenen:

  1. -v # Ergebnisse der Anzeige anzeigen
  2. -vv #Anzeigen von Aufgabenergebnissen und Aufgabenkonfiguration
  3. -vvv # enthält Informationen zu Verbindungen zu verwalteten Hosts
  4. -vvvv # Zusätzliche Ausführlichkeitsoptionen für Verbindungs-Plugins hinzufügen (einschließlich Benutzer, die Skripts ausführen, und Skripts, die auf verwalteten Hosts ausgeführt werden)

# Führen Sie am besten eine Syntaxüberprüfung durch, bevor Sie das Playbook ausführen.
Fügen Sie hier eine Bildbeschreibung ein
# Kein Syntaxfehler
Ändern Sie das Playbook:
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Wenn ein Grammatikfehler vorliegt, wird der falsche Speicherort angezeigt.

3.1.5 Trockenlauf durchführen, nur Vorschau des Ergebnisses

Wir entfernen zuerst den httpd-Dienst auf dem 71-Host
Fügen Sie hier eine Bildbeschreibung ein
und führen dann das Playbook aus.
Ansible-Playbook -C webserver.yml
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
ist noch nicht installiert. Es kann gesehen werden.
"Bei einem Trockenlauf wird gemeldet, was passiert, wenn dieses Playbook ausgeführt wird, der Zielhost wird jedoch nicht geändert."

3.1.6 Installieren, konfigurieren Sie die Standard-Release-Seite und starten Sie Apache

 vim site.yml

Fügen Sie hier eine Bildbeschreibung ein

Erkennungsgrammatik

ansible-playbook --syntax-check site.yml

Fügen Sie hier eine Bildbeschreibung ein
Kein Problem.
# Erstellen Sie die Konfigurationsdatei und -liste.
Fügen Sie hier eine Bildbeschreibung ein
# Erstellen Sie die Standard-Veröffentlichungsseite
cat files / index.html,
Fügen Sie hier eine Bildbeschreibung ein
um die Playbook:
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Service-Installation auszuführen und zu aktivieren.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Die Veröffentlichungsseite wurde erfolgreich geändert.

# Test
curl Remote - Browser - Inhalte erhalten.
Fügen Sie hier eine Bildbeschreibung ein

3.2 Implementieren Sie mehrere Spiele

Vorlage:
Fügen Sie hier eine Bildbeschreibung ein
ansible-doc -l
Fügen Sie hier eine Bildbeschreibung ein
#Listet alle Module auf ansible-doc yum #Listenverwendung und Beispiele für
Fügen Sie hier eine Bildbeschreibung ein
yum ansible-doc -s yum #Verwenden Sie das Terminal, um die Verwendung jedes Parameters im yum-Modul auszugeben
Fügen Sie hier eine Bildbeschreibung ein

3.3 Änderungen der PLAYBOOK-Yaml-Syntax

  1. Kommentare von yaml
    Fügen Sie hier eine Bildbeschreibung ein
  2. yaml string
    direkt eingeben
    dies ist ein String
    einfache Anführungszeichen
    'dies ist ein String'
    mehrere Anführungszeichen
    "dies ist ein String"

# Übung
Ändern Sie die Remote-Host-Seite, ohne die Firewall zu schließen, und besuchen Sie:

Fügen Sie hier eine Bildbeschreibung ein

 vim webserver.yml
---
- name: Enable internet service
  hosts: web
  become: yes
  tasks:
          - name: apache and firewalld installed   # 检测firewalld和httpd是否为最新版  
            yum:
                    name:
                            - httpd
                            - firewalld
                    state: latest          

          - name: Configure index.html    # 配置默认发布页面
            copy:
                    content: "welcome to westos!\n"
                    dest: /var/www/html/index.html
                    
          - name: firewalld enabled and runing    # 检测firewalld是否开机自启并启用
            service:
                    name: firewalld
                    enabled: true
                    state: started
                    
          - name: firewald primits http           # 检测firewalld是否添加http服务
            firewalld:
                    service: http
                    permanent: true
                    state: enabled
                    immediate: yes
                    
          - name: httpd enabled and runing            # 检测httpd服务是否自启并运行
            service:
                    name: httpd
                    enabled: true
                    state: started
                    
- name: test webserver					本地主机测试访问
  hosts: localhost
  become: no
  tasks:
          - name: connect web server
            uri:
                    url: http://rhel71.com
                    return_content: yes
                    status_code: 200

# Erkennungsgrammatik
Fügen Sie hier eine Bildbeschreibung ein
# ausführen

ansible-playbook -v webserver.yml

Fügen Sie hier eine Bildbeschreibung ein
Sie können sehen, dass der Inhalt in Westos willkommen ist
und der Statuscode 200 zurückgegeben wird

3.4 Managementvariablen und Fakten

Verwenden Sie einige Variablen im Playbook anstelle von Variablen, um das Schreiben des Playbooks zu vereinfachen

3.4.1 Verwaltungsvariablen

Einführung in ansible Variablen

Variablen können die folgenden Werte enthalten:
zu erstellende Benutzer, zu
installierende Softwarepakete
, neu zu startende Dienste
, zu löschende Dateien,
aus dem Internet abzurufende Dokumente

Benannte Variable

Variablennamen müssen mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstrichen
korrekte Fehler
Web Server web_server
westos.file remote_file
1file file1

Variablen definieren

Drei Bereichsebenen
Globaler Bereich: Über die Befehlszeile oder die Ansible-Konfiguration festgelegte Variablen
Spielbereich: Im Spiel festgelegte Variablen und verwandte Strukturen
Host-Bereich: Aufgaben, die nach Inventar, Fakten, auf Hostgruppen und einzelnen Hosts gesammelt oder registriert wurden Variablen
'Wenn Variablen mit demselben Namen auf mehreren Ebenen definiert sind, wird die Variable mit der höchsten Ebene bevorzugt, und der enge Bereich hat Vorrang vor dem breiten Bereich.'

3.4.2 Variablen im Playbook

Definieren Sie Variablen im Playbook

1. Allgemeine Vorgehensweise: Im vars-Block am Anfang des Playbooks:
Fügen Sie hier eine Bildbeschreibung ein
2. Definieren Sie die Playbook-Variable in der externen Datei
Fügen Sie hier eine Bildbeschreibung ein

cat user.yml

Fügen Sie hier eine Bildbeschreibung ein

Verwenden Sie Variablen im Playbook

Setzen Sie den Variablennamen in geschweifte Klammern.
Fügen Sie hier eine Bildbeschreibung ein
'Hinweis: Wenn die Variable als erstes Element zum Starten eines Werts verwendet wird, müssen Sie Anführungszeichen verwenden.'

Veröffentlicht 50 Originalartikel · Gefallen 18 · Besuche 3780

Ich denke du magst

Origin blog.csdn.net/thermal_life/article/details/105308669
Empfohlen
Rangfolge