[gelöst] Ansible Verständnissfrage

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
trg2889
Beiträge: 137
Registriert: 01.07.2015 08:45:36

[gelöst] Ansible Verständnissfrage

Beitrag von trg2889 » 21.12.2017 16:10:16

Hallo zusammen,

stehe gerade etwas auf dem Schlauch, folgendes Szenario: Ich bin dabei meine Bash-Scripte zur Installation von lokalen Testumgebungen auf Ansible umzustellen. In der inventory.yml trage ich ja meine hosts ein, und führe dann das Playbook aus. Wenn ich in der inventory.yml nun einen neuen zusätzlichen Host eintrage und dann das Playbook erneut aufrufe müssten doch auch die bereits eingetragenen Host wieder mit bearbeitet werden oder ? Wo habe ich meinen Denkfehler ?
Danke im Vorraus
Zuletzt geändert von trg2889 am 21.12.2017 19:17:03, insgesamt 1-mal geändert.

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Ansible Verständnissfrage

Beitrag von DynaBlaster » 21.12.2017 18:37:36

Das kommt darauf an, wie dein playbook aussieht und wie du es ausrufst. Wenn das playbook die inventory.yml referenziert, dann müsste ansible eigentlich alle Hosts aus inventory.yml erneut "durchgehen".

Wir haben das hier etwas komplexer aufgebaut und unter /etc/ansible/roles jeweils eigene Unterverzeichnisse für bestimmte Serverdienste/Anwendungsszenarien konfiguriert. Die einzelnen Hosts sind unter /etc/ansible/hosts angelegt und zu Gruppen zusammengefasst. Diesen Gruppen wiederum werden über /etc/ansible/site.yml die entsprechenden Rollen zugewiesen.

Code: Alles auswählen

ansible-playbook /etc/ansible/site.yml
Dann fängt Ansible an und geht alle Hosts durch und führt die Playbooks aus, die zu den Rollen gehören.
Das kann bei steigender Anzahl Hosts recht lange dauern und erschwert bzw. verlängert natürlich das Debugging, wenn mal wieder was geändert wurde und die Änderung fehlerhaft war oder gegen die Ansible-Syntax verstösst. Deshalb haben wir zusätzlich einen Ordner /etc/ansible/custom-playbooks mit spezielllen Playbooks playbook_xxx.yml, playbook_yyy.yml, usw..

Damit kann man dann bestimmte Rollen/Playbooks bei einem Ansible-Durchlauf recht einfach auf spezielle Gruppen oder einzelne Hosts minimieren. Das ist zum Beispiel, wenn man einen neuen Host hinzugefügt und seine Default-Konfiguration ausliefern will, ohne darauf zu warten, das ansible bei 100 anderen Hosts "nix zum Ändern" gefunden hat.

Code: Alles auswählen

ansible-playbook /etc/ansible/custom-playbooks/playbook_xxx.yml
http://docs.ansible.com/ansible/latest/ ... roles.html

trg2889
Beiträge: 137
Registriert: 01.07.2015 08:45:36

Re: Ansible Verständnissfrage

Beitrag von trg2889 » 21.12.2017 18:58:39

Hallo,
Ahh okay vielen Dank. Das mit den Rollen hatte ich bisher noch nicht auf meiner Todo-Liste. Da ich mich erst in Ansible reinarbeiten wollte und mir die Grundlagen aneignen wollte. Aber der Ansatz mit den Rollen vereinfacht das ganze für mich. Wenn ich das richtig sehe, kann ich in der

Code: Alles auswählen

/etc/ansible/hosts
verschiedene Rollen definieren. und in der

Code: Alles auswählen

site.yml
wie hier im Beispiel zu sehen https://github.com/ansible/ansible-exam ... e/site.yml sagen, für alle hosts mache die Grundkonfigruation und nur für die hosts die in der Rolle "dbservers" sind installiere den MySQL Server.

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Ansible Verständnissfrage

Beitrag von DynaBlaster » 21.12.2017 19:13:28

Genau so.

/etc/ansible/hosts ist bei dir die inventory.yml. Wir haben das noch nicht umgestellt. Die inventory.yml-Syntax ist ein bisschen anders, die Konfiguration via hosts wird bald von ansible nicht mehr unterstützt.

trg2889
Beiträge: 137
Registriert: 01.07.2015 08:45:36

Re: Ansible Verständnissfrage

Beitrag von trg2889 » 21.12.2017 19:15:23

Okay danke für deine Hilfe damit bin ich schonmal etwas weiter. Wünsche dir noch schöne Festtage

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] Ansible Verständnissfrage

Beitrag von ThorstenS » 21.12.2017 22:25:42

Ich benutze gerne ansible-lint¹, um den syntax zu checken. Manchmal brauchts allerdings ein - skip_ansible_lint, um den task ohne Fehler durchzuwinken. Wenn alles klappt, gibts keine Meldung, wenn er etwas auszusetzen hat, wirds bunt mit hilfreichen Hinweisen.

Ansonsten sind tags ne gute Möglichkeit nur bestimmte Teile eines playbooks/einer Rolle abarbeiten zu lassen. Kann aber schnell in viel Schreibarbeit ausarten.

[1] https://github.com/willthames/ansible-lint

Antworten