it-swarm.com.de

Ist es möglich, Ansible-Hosts / Inventardateien in YAML zu schreiben?

Auf der Best Practices-Seite gibt es ein Beispiel, das hosts.yml Für Hosts-Dateien verwendet:

YAML-based hosts file

In den Dokumenten kann ich jedoch nur die Syntax INI zum Schreiben von Hosts-Dateien finden.

Wie lautet die Syntax für die Inventardateien in YAML?

31
Behrang

Ja.

Es wurde veraltet in Version 0.6 im Jahr 2012 und wieder eingeführt in einem Commit, das erstmals in Version 2.1 im Jahr 2016 enthalten war.

Die Beispieldatei auf GitHub enthält die Richtlinien und Beispiele:

  • Kommentare beginnen mit dem Zeichen '#'
  • Leerzeilen werden ignoriert
  • Einträge der obersten Ebene werden als Gruppen angenommen
  • Hosts müssen in den Hosts einer Gruppe angegeben werden: und sie müssen ein Schlüssel sein (: beendet)
  • gruppen können untergeordnete Schlüssel, Hosts und Vars-Schlüssel haben
  • Alles, was unter einem Host definiert ist, wird als var angenommen
  • Sie können Hostnamen oder IP-Adressen eingeben
  • Ein Hostname/eine IP kann Mitglied mehrerer Gruppen sein

Beispiel 1: Nicht gruppierte Hosts, in 'nicht gruppierte' Gruppe einfügen

ungrouped:
  hosts:
      green.example.com:
          ansible_ssh_Host: 191.168.100.32
      blue.example.com:
      192.168.100.1:
      192.168.100.10:

Beispiel 2: Eine Sammlung von Hosts, die zur Gruppe der Webserver gehören

webservers:
  hosts:
      alpha.example.org:
      beta.example.org:
      192.168.1.100:
      192.168.1.110:

Beispiel 3: Sie können Hosts mithilfe von Bereichen erstellen und einer Gruppe untergeordnete Gruppen und Variablen hinzufügen. Die untergeordnete Gruppe kann alles definieren, was Sie normalerweise zu einer Gruppe hinzufügen würden

testing:
  hosts:
      www[001:006].example.com:
  vars:
      testing1: value1
  children:
      webservers:
          hosts:
              beta.example.org:
38
techraf

Die vorherigen Antworten sind korrekt, aber hier sehen Sie einfach hosts.yaml und INI nebeneinander im Screenshot. Ich kopiere nur die eigentliche hosts.yaml hierher, wenn Sie sie kopieren und einfügen und selbst bearbeiten möchten

--- 
all: 
  hosts:               
    xmp: 
      ansible_connection: ssh
      ansible_Host: "192.1.0.1"
      ansible_port: 7822
      ansible_user: nanoseco

enter image description here

einige weitere Infos:

https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

2
grepit

Ich habe gerade festgestellt, dass Ansible INI in YAML-Inventarkonverter in github funktioniert hat:

Dieses Repository enthält ein Python Skript zum Konvertieren von Ansible-Inventaren im INI Format in das YAML-Format.

Aus irgendeinem Grund endete die Konvertierung mit Host-Bereichen ([01:03]) getrennt durch = anstelle des angezeigten und korrekten :.

2
jitter