2017-11-20 7 views
0

Ich verwende das vmware_guest Modul, um eine Reihe von VMs zu erstellen.Inventar mit einem Hostnamen und IP-Adressmuster

Gibt es trotzdem ein Muster für den Hostnamen und die IP-Adresse?

Zum Beispiel möchte ich 5 Master vms erstellen mit dem Hostnamen/IP wie:

  • master110.123.0.1
  • master210.123.0.2
  • master310.123.0.3
  • usw.

ein Inventar yaml mit so etwas wie die folgenden Also: all: children: Elvis: children: masterNodes: hosts: master[1-5]: ansible_host: 10.123.0.[1-5] slaveNodes: hosts: slave[1-10]: ansible_host: 10.124.0.[1-10]


Auch ist es eine Möglichkeit, ein Textbuch für eine bestimmte parent:child Gruppe zu laufen? Wie kann ich ein Spiel nur für Elvis:masterNodes abspielen? Wenn zum Beispiel derselbe Inventar-YAML eine andere Eltern-Kind-Gruppe hat Bono:masterNodes

Antwort

1

Gibt es trotzdem ein Muster für den Hostnamen und die IP-Adresse?

Nr Stattdessen ermöglicht ansible das Ausführen eines Skripts eine Bestandsaufnahme zu erzeugen - es trivial ist eine Schleife bevöl Inventar-Hostnamen zusammen mit IP-Adresse in Python zu implementieren (anscheinend klar, so früh wie in July 2013 gemacht wurde, obwohl im selben Thread vorgeschlagen jemand a workaround).

Gibt es auch eine Möglichkeit, ein Playbook für einen bestimmten Elternteil auszuführen: Untergruppe?

Nein. Es gibt keine Hierarchie in Ansible-Inventar; der Namensraum ist flach; Es gibt keine Kindergruppen; Ansible arbeitet mit Host-/Gruppensätzen.

In der Tat können Sie nicht unterschiedliche (Unter) Gruppen mit dem gleichen Namen haben. Der Inhalt dieser (Unter) Gruppen wird zusammengeführt. Wenn also Elvis eine Gruppe masterNodes enthält und Sie eine Wiedergabe mit hosts:Elvis Deklaration ausführen, wird sie auf allen Hosts ausgeführt, die für masterNodes definiert sind (einschließlich in Bono:masterNodes).

Verwandte Themen