Ich verwende Ansible, um einige Web- und Datenbankserver zu verwalten, auf denen Websites für mehrere vhosts ausgeführt werden. Für jede Website muss ich der dbservers-Gruppe eine Datenbankrolle und der webservers-Gruppe eine Website-Rolle zuweisen. Mein Spielbuch sieht also ungefähr so aus:
- hosts: dbservers
roles:
- { role: database, vhost: 'host1.com', db: 'customdb' }
- { role: database, vhost: 'other.com' }
- hosts: webservers
roles:
- { role: website, vhost: 'host1.com', db: 'customdb' }
- { role: website, vhost: 'other.com' }
Das funktioniert gut, ist aber hässlich, da ich alles zweimal wiederholen muss. Dies ist besonders fehleranfällig, wenn einige Parameter von den Standardwerten geändert werden (wie z. B. db auf vhost host1.com in diesem Beispiel).
Gibt es eine Möglichkeit, dies zu schreiben, damit ich eine einzelne Liste von vhosts mit allen erforderlichen Parametern haben und die verschiedenen Rollen für jeden vhost-Eintrag automatisch zu den verschiedenen Hostgruppen hinzufügen kann?
with_itemsvielleicht verwenden?