Unterschiede zwischen den Revisionen 1 und 2
Revision 1 vom 2013-12-14 23:37:52
Größe: 2005
Autor: anonym
Kommentar: init
Revision 2 vom 2013-12-15 00:15:53
Größe: 3042
Autor: anonym
Kommentar: präzisiert
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 21: Zeile 21:
Die folgenden Verzeichnisse sind außerdem nützlich: Die folgenden Dateien und Verzeichnisse sind außerdem nützlich:
 hosts:: verschiedene Host-Namen sind hier in Gruppen zusammengefasst und evt. mit Host- oder Gruppen-spezifischen Variablen versehen (z.B. {{{obnamRoots}}})
Zeile 25: Zeile 26:


= Übliche Tätigkeiten =
 * Playbook ausführen: {{{
ansible-playbook /etc/ansible/playbook-sao.yml
}}}
 * Daten aller aufgeführten Hosts ausgeben (diese können beispielsweise in Templates oder Bedingungen verwendet werden): {{{
ansible -m setup all
}}}
 * Playbook für einen spezifischen Host ausführen: {{{
ansible-playbook /etc/ansible/playbook-sao.yml -l FOO_HOST
}}}
 * Probelauf, um Übersicht der Änderungen zu sehen: {{{
ansible-playbook /etc/ansible/playbook-sao.yml --check
}}}
 * Probelauf, um Detailänderungen (veränderte Dateien) zu sehen: {{{
ansible-playbook /etc/ansible/playbook-sao.yml --check --diff
}}}


= Doku =
 * [[http://www.ansibleworks.com/docs/|Syntax]]
 * [[http://www.ansibleworks.com/docs/modules.html|alle Module]]
 * [[https://github.com/ansible/ansible-examples|Repository mit ansible-Beispielen]]


Was ist das hier

Es gibt viele Systeme zur Verwaltung von Konfigurationsdateien und Systemzuständen auf einer größeren Anzahl von Rechnern. Ansible ist ein solches System, das im Vergleich zu anderen eine intuitiven Einstieg verhältnismäßig leicht ermöglicht.

Die Doku beschreibt die Verteilung von Konfigurationen auf mehrere lokalen virtuellen Hosts. Die Verwaltung geht dabei von dem Virtualisierungshost aus. Als Kommunikationspfad ist lediglich ein passwortfreier ssh-root-Zugang vom Manager zu den Nodes erforderlich.

Installation

Seit jessie sollte/wird das Paket ansible in Debian-Repositories verfügbar sein. Als Abhängigkeiten sind lediglich Python v2.7 und die jinja2-Template-Engine erforderlich. Eine Beimischung dieses jessie-Pakets sollte also auch auf squeeze- oder wheezy-Hosts unproblematisch sein.

Struktur

Alle Konfigurationsdateien sollten unter /etc/ansible/ abgelegt werden. Dieses Verzeichnis wird als subversion-Arbeitskopie verwaltet, um Änderungen leichter nachvollziehen zu können.

Für verschiedene Host-Gruppen oder Themen können einzelne playbook-Dateien angelegt:

  • playbook-sao.yml
  • playbook-router.yml

Die folgenden Dateien und Verzeichnisse sind außerdem nützlich:

hosts

verschiedene Host-Namen sind hier in Gruppen zusammengefasst und evt. mit Host- oder Gruppen-spezifischen Variablen versehen (z.B. obnamRoots)

tasks.d
einzelne Task_Dateien, die verschiedene thematisch zusammenhängende Aufgaben enthalten, werden in den Playbook-Dateien referenziert
handlers.d
manche Aufgaben sollen weitere Aktionen auslösen (bspw. den Neustart eines Dienstes, falls seine Konfigurationsdatei geändert wird). Diese Aktionen werden nur bei tatsächlichen Änderungen ausgeführt.
templates

hier liegen Dateien und Vorlagen, die auf die Hosts kopiert werden sollen. Die Dateien müssen in den Aufgaben explizit verwendet werden. Die Dateistruktur unterhalb des templates-Verzeichnis ist prinzipiell beliebig, lehnt sich jedoch überwiegend and die reale Verzeichnisstruktur auf dem Zielhost an.

Übliche Tätigkeiten

  • Playbook ausführen:

    ansible-playbook /etc/ansible/playbook-sao.yml
  • Daten aller aufgeführten Hosts ausgeben (diese können beispielsweise in Templates oder Bedingungen verwendet werden):

    ansible -m setup all
  • Playbook für einen spezifischen Host ausführen:

    ansible-playbook /etc/ansible/playbook-sao.yml -l FOO_HOST
  • Probelauf, um Übersicht der Änderungen zu sehen:

    ansible-playbook /etc/ansible/playbook-sao.yml --check
  • Probelauf, um Detailänderungen (veränderte Dateien) zu sehen:

    ansible-playbook /etc/ansible/playbook-sao.yml --check --diff

Doku

FaxeKonfigurationsManagement (zuletzt geändert am 2013-12-15 04:52:35 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.