[LINUX] Eine verschiedene Zusammenfassung dessen, was ich über Ansible recherchiert habe

Variable

Offizielles Dokument - Verwenden von Variablen

Es scheint, dass es sowohl im INI-Dateiformat als auch im YAML-Format beschrieben werden kann. Ist das eine Inventardatei ...?

#INI-Format
[atlanta]
host1
host2

[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
#YAML-Format
atlanta:
  hosts:
    host1:
    host2:
  vars:
    ntp_server: ntp.atlanta.example.com
    proxy: proxy.atlanta.example.com

Host- und Gruppenvariablen

Neben der Definition von Variablen im Inventar können Sie auch Host- und Gruppenvariablen definieren. In diesem Fall scheint es notwendig zu sein, das YAML-Format zu verwenden. Erstellen Sie eine Gruppennamen- / Hostnamensdatei in den Verzeichnissen group_vars und host_vars unter dem Verzeichnis/ etc / ansible /und dem aktuellen Verzeichnis und beschreiben Sie die Einstellungen.

/etc/ansible/group_vars/raleigh #Die Dateierweiterung lautet'.yml'、 '.yaml', Oder'.json'
/etc/ansible/group_vars/webservers
/etc/ansible/host_vars/foosball

Die Definitionsdatei der der Rolle zugeordneten Variablen kann etwas anders sein. Oder main.yml. Ich möchte auch folgendes lesen. Offizielle Dokumente - Best Practices

Iterative Verarbeitung

Sie können loop oder with_ * verwenden, um eine iterative Verarbeitung durchzuführen. loop scheint eine Funktion zu sein, die in Version 2.5 von Ansible hinzugefügt wurde. In einigen Modulen können Sie eine Liste direkt an einen Parameter übergeben. Dies kann effizienter sein als das Schleifen von Aufgaben. Lesen Sie das Modulhandbuch.

Offizielle Dokumentenschleifen

Durch eine einfache Liste iterieren

- name: add several users
  user:
    name: "{{ item }}"
    state: present
    groups: "wheel"
  loop: # with_items:
     - testuser1
     - testuser2

Iterative Verarbeitung der Hash-Liste

- name: add several users
  user:
    name: "{{ item.name }}"
    state: present
    groups: "{{ item.groups }}"
  loop: # with_items:
    - { name: 'testuser1', groups: 'wheel' }
    - { name: 'testuser2', groups: 'root' }

Beim Referenzieren einer Variablen

Wenn Sie mit einer vordefinierten Variablen iterieren möchten, geben Sie die Variable in loop an. Variablen können nur referenziert werden, wenn sie in "{{}}" eingeschlossen sind. Was Sie beachten sollten, ist der Variablenname, und es gibt Variablen, die implizit deklariert werden. Wenn Sie also in Konflikt damit stehen, funktioniert dies nicht gut und Sie werden süchtig danach. .. .. Wie "Gruppen". Überprüfen Sie Spezielle Variablen in der offiziellen Dokumentation. .. ..

vars:
  users:
    - { name: 'testuser1', groups: 'wheel' }
    - { name: 'testuser2', groups: 'root' }

- name: add several users
  user:
    name: "{{ item.name }}"
    state: present
    groups: "{{ item.groups }}"
  loop: "{{ users }}"

Führen Sie die Aufgabe als Administrator aus

Wenn Sie keine SSH-Verbindung als Root herstellen können, verwenden Sie "Werden", um die Aufgabe mit Administratorrechten auszuführen.

Offizielles Dokument - Eskalation von Berechtigungen verstehen: Werden

Beschreiben Sie bei der Beschreibung im Playbook das folgende Formular.

---
- hosts: all
  become: yes
  become_user: root
  become_method: su
  become_flags: '-s /bin/sh'

Oder setzen Sie eine Variable. Ich denke, dass Variablen in einer geeigneten Datei entsprechend dem Anwendungsbereich angegeben werden sollten.

---
# group_vars/all.yml
ansible_become: yes
ansible_become_method: su
ansible_become_password: somepassword

Es scheint, dass get_password keinen Passwort-Hash angeben kann. Wenn Sie vertrauliche Daten schützen möchten, verwenden Sie Ansible Vault.

Lauf

DRY-RUN Mit der Option --check ausführen. Es gibt auch eine --diff Option, aber was ist der Unterschied ...

Syntaxprüfung

Mit der Option "--syntax-check" ausführen.

Überprüfen Sie die Aufgabenliste

Mit der Option --list -asks ausführen.

Führen Sie eine bestimmte Aufgabe aus

Führen Sie den Befehl "ansible-playbook" mit der Option "--start-at-task" aus. Fügen Sie dem Schritt die Option "--step" hinzu.

ansible-playbook -i hosts -l hostname site.yml --start-at-task="some task name" --step

Recommended Posts

Eine verschiedene Zusammenfassung dessen, was ich über Ansible recherchiert habe
Eine Zusammenfassung dessen, was ich wie ein Blog berührt habe
H29.2.27 ~ 3.5 Zusammenfassung meiner Arbeit
[Ansible] Worauf ich beim Schreiben von Ansible achten muss
Was ist ein empfohlener Motor? Zusammenfassung der Typen
Ich habe mir den Inhalt von sklearn (scikit-learn) angesehen. (1) ~ Was ist mit der Implementierung von CountVectorizer? ~
2017.3.6 ~ 3.12 Zusammenfassung unserer Aktivitäten
Was ich über Linux gelernt habe
Eine kurze Zusammenfassung von Linux
Ein Hinweis darauf, was ich gelernt habe, als ich über die Verwendung von pyenv oder virtualenv unter Windows nachdachte
Eine kurze Zusammenfassung der Python-Sammlung
Ich habe eine Frage zu Leerzeichen
Eine grobe Zusammenfassung der Geschichte des Betriebssystems
Ich habe die Quantenbits (Anfänger) kurz zusammengefasst.
Was ich über Qiitas Post überprüft habe
Eine Erinnerung an das, was ich beim Starten von Atcoder mit Python feststeckte
Memorandum zu Djangos QueryDict
Zusammenfassung der Numpy-Funktionen, die ich nicht kannte
Was ich mit Python-Arrays gemacht habe
Eine kurze Zusammenfassung der Pinax-Übersicht #djangoja
Ich habe einen Benchmark für die h5py-Komprimierung erstellt
Ich habe versucht, ein Auto in 3D zu erkennen
Python-Übungsdatenanalyse Zusammenfassung des Lernens, dass ich ungefähr 10 mit 100 Schlägen getroffen habe
Zusammenfassung der Linux-Befehlstechniken, die ich als junger Ingenieur kannte
Zusammenfassung dessen, was bei 100 Pandas-Schlägen verwendet wurde (# 1 ~ # 32)
Ich habe ein wenig über die wachsende API von TensorFlow nachgedacht
Schreiben Sie eine Notiz über die Python-Version von Python Virtualenv
E / A-bezogene Zusammenfassung von Python und Fortan
Woran ich in der Aufnahmeprüfungsfrage "Bayes Statistics from the Basics" gedacht habe
Ich dachte darüber nach, warum Python selbst mit dem Gefühl eines Python-Interpreters notwendig ist