web-dev-qa-db-fra.com

Est-il possible d'écrire des fichiers hôtes / d'inventaire Ansible en YAML?

Dans la page des meilleures pratiques, vous trouverez un exemple utilisant hosts.yml pour les fichiers hôtes:

YAML-based hosts file

Dans la documentation, cependant, je ne trouve que la syntaxe INI pour écrire des fichiers hôtes).

Quelle est la syntaxe des fichiers d'inventaire dans YAML?

31
Behrang

Oui.

Cela fait obsolète dans la version 0.6 en 2012 et réintroduit dans un commit inclus pour la première fois dans la version 2.1 en 2016.

Le exemple de fichier sur GitHub contient les instructions et exemples:

  • Les commentaires commencent par le caractère '#'
  • Les lignes vides sont ignorées
  • Les entrées de premier niveau sont supposées être des groupes
  • Les hôtes doivent être spécifiés dans les hôtes d'un groupe: et ils doivent être une clé (: terminée)
  • les groupes peuvent avoir des clés enfants, hôtes et vars
  • Tout ce qui est défini sous un hôte est supposé être un var
  • Vous pouvez entrer des noms d'hôte ou des adresses IP
  • Un hostname/ip peut être membre de plusieurs groupes

Exemple 1: hôtes non groupés, mis en groupe 'non groupé'

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

Ex 2: une collection d’hôtes appartenant au groupe des "serveurs Web"

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

Ex 3: Vous pouvez créer des hôtes à l'aide de plages et ajouter des groupes d'enfants et des vars à un groupe. Le groupe d'enfants peut définir tout ce que vous ajouteriez normalement à un groupe.

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

Les réponses précédentes sont correctes mais voici simples hosts.yaml et INI comme côte à côte dans la capture d'écran et je ne fais que copier le fichier hosts.yaml ici aussi, donc si vous voulez copier, coller et éditez-le pour vous-même

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

enter image description here

quelques infos supplémentaires:

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

2
grepit

Je viens de découvrir Ansible INI au convertisseur d'inventaire YAML sur github qui a bien fonctionné pour moi:

Ce référentiel contient un script Python) permettant de convertir les inventaires Ansible au format INI au format YAML.

Pour une raison quelconque, la conversion a abouti à des plages d’hôte ([01:03]) étant séparé par = au lieu de ce qui est montré et corrige :.

2
jitter