Verstehen von Ansible-Konfiguration und -Modulen
Nachdem wir Ansible installiert und zum Laufen gebracht haben, wollen wir uns mit seiner Konfiguration und dem Konzept der Module beschäftigen.
Ansible-Konfiguration
Ansible verwendet Konfigurationsdateien, um sein Verhalten zu steuern. Die Hauptkonfigurationsdatei ist ansible.cfg
, die sich an verschiedenen Orten befinden kann. Untersuchen wir die Standardkonfigurationsdatei:
ls -la /etc/ansible/
Sie sollten die Standard-Ansible-Verzeichnisstruktur sehen:
total 20
drwxr-xr-x 2 root root 4096 Aug 30 12:00 .
drwxr-xr-x 85 root root 4096 Aug 30 12:00 ..
-rw-r--r-- 1 root root 8669 Aug 30 12:00 ansible.cfg
-rw-r--r-- 1 root root 1021 Aug 30 12:00 hosts
Werfen wir einen Blick auf die Datei hosts
, die die Standard-Inventory-Datei ist:
cat /etc/ansible/hosts
Die Inventory-Datei enthält eine Liste der Hosts, die Ansible verwalten kann. Standardmäßig enthält sie Beispiele, die auskommentiert sind.
Erstellen einer benutzerdefinierten Konfiguration
Erstellen wir unsere eigene Ansible-Konfigurationsdatei in unserem Projektverzeichnis. Erstellen Sie in der WebIDE eine neue Datei namens ansible.cfg
im Verzeichnis ~/project/ansible-test
mit dem folgenden Inhalt:
[defaults]
inventory = ./inventory
host_key_checking = False
stdout_callback = yaml
Erstellen wir nun eine einfache Inventory-Datei. Erstellen Sie in der WebIDE eine neue Datei namens inventory
im Verzeichnis ~/project/ansible-test
mit dem folgenden Inhalt:
[local]
localhost ansible_connection=local
Erkunden von Ansible-Modulen
Ansible-Module sind wiederverwendbare Codeeinheiten, die bestimmte Aufgaben ausführen. Untersuchen wir einige der verfügbaren Module:
ansible-doc -l | wc -l
Dieser Befehl listet alle verfügbaren Module auf und zählt sie. Sie sollten eine große Anzahl sehen, typischerweise über 1000 Module.
Sehen wir uns die Dokumentation für ein bestimmtes Modul an, z. B. das Modul file
, das wir in unserem Playbook verwendet haben:
ansible-doc file
Sie können q
drücken, um die Dokumentationsanzeige zu verlassen.
Erstellen eines komplexeren Playbooks
Erstellen wir nun ein fortgeschritteneres Playbook, das ein paar weitere Ansible-Module demonstriert. Erstellen Sie in der WebIDE eine neue Datei namens modules-demo.yml
im Verzeichnis ~/project/ansible-test
mit dem folgenden Inhalt:
---
- name: Ansible Modules Demo
hosts: localhost
connection: local
gather_facts: yes
tasks:
- name: Display system information
debug:
msg: "System: {{ ansible_distribution }} {{ ansible_distribution_version }}"
- name: Create a directory
file:
path: /tmp/ansible-demo
state: directory
mode: "0755"
- name: Copy a file
copy:
content: "Created by Ansible modules demo playbook\n"
dest: /tmp/ansible-demo/info.txt
mode: "0644"
- name: Gather information about a file
stat:
path: /tmp/ansible-demo/info.txt
register: file_info
- name: Show file information
debug:
msg: "File created at {{ file_info.stat.mtime }}"
Führen wir dieses Playbook aus:
cd ~/project/ansible-test
ansible-playbook modules-demo.yml
Das Playbook macht Folgendes:
- Zeigt Informationen über Ihr System an
- Erstellt ein Verzeichnis unter
/tmp/ansible-demo
- Erstellt eine Datei mit benutzerdefiniertem Inhalt
- Sammelt Informationen über die Datei
- Zeigt die Änderungszeit der Datei an
Markieren wir diesen Schritt als abgeschlossen für unser Überprüfungsskript:
touch /tmp/ansible_modules_explored
Sie haben nun etwas über die Ansible-Konfiguration, Inventory-Dateien gelernt und verschiedene Module erkundet. Dies sind wesentliche Komponenten für die effektive Arbeit mit Ansible.