2017-04-19 4 views
0

Ich benutze ansible, um Aufträge/Konfigurationen zu meinem k8s-Cluster über den Befehl kubectl auf meinem lokalen Rechner zu senden. Ich habe meine Inventardatei eingerichtet, so dass jeder Cluster seine eigene Gruppe ist und jeder Cluster im Grunde eine Verbindung zu localhost ist.ansible Variablen mit mehreren Gruppen geteilt, wenn Inventar nur localhost ist

# Inventory File 
# 
[east.k.example.com] 
localhost    ansible_connection=local 

[east2.k.example.com] 
localhost    ansible_connection=local 

Da ist in meinem group_vars Verzeichnis habe ich eine andere Datei mit dem Namen meiner Fraktion aus meinem Inventar-Datei, die für jeden Cluster alle verschiedenen Variablen hält.

Ich beschränke meine Läufe nur ein Cluster mit der Grenze Option Ziel: ansible-playbook -vv create.yaml -l east2.k.example.com --tags ingress-generate-only

Das Problem ist, dass, wenn ich Variablen verwendet in meinen Vorlagen ich versuche, Variablen von den anderen Gruppen erhalten. Ich denke da jede Gruppe localhost enthält.

Gibt es einen besseren Weg, um dieses Problem zu lösen? Kann ich ein Flag setzen, so dass Gruppen nur die Variablen aus den group_var-Dateien enthalten?

Dank,

Antwort

1

Refaktorieren Inventar verschiedene Namen zu verwenden: also nicht verschmelzenden Variablen aus unterschiedlichen Gruppen

# Inventory File 
# 
[east.k.example.com] 
east ansible_connection=local 

[east2.k.example.com] 
east2 ansible_connection=local 

Auf diese Weise ansible sie als verschiedene Hosts behandeln.

+0

OMG Vielen Dank !!! Sie haben keine Ahnung, wie sehr ich versucht habe, dieses Problem zu lösen. –

Verwandte Themen