2017-09-27 3 views
0

hosts.inierreur d'analyse d'inventaire YAML

[local] 
127.0.0.1 ansible_connection=local 

hosts.yaml

local: 
    hosts: 
    127.0.0.1: 
    vars: 
    ansible_connection: local 

alors je cours ansible local -m ping -i hosts.ini je me suis attendu ouput, alors je cours ansible local -m ping -i hosts.yaml je suis arrivé:

[WARNING]: * Failed to parse /home/elruso/projects/ansible/hosts.yaml with ini plugin: /home/elruso/projects/ansible/hosts.yaml:5: Expected key=value host variable assignment, got: local 
[WARNING]: Unable to parse /home/elruso/projects/ansible/hosts.yaml as an inventory source 
[WARNING]: No inventory was parsed, only implicit localhost is available 
[WARNING]: Could not match supplied host pattern, ignoring: local 
[WARNING]: No hosts matched, nothing to do 

Selon docs I peut utiliser des fichiers yaml comme inventaire sans problèmes. Comment puis-je spécifier d'utiliser le plugin yml?

$ansible --version 
ansible 2.4.0.0 
config file = /home/elruso/projects/ansible/ansible.cfg 
configured module search path = ['/home/elruso/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] 
ansible python module location = /home/elruso/.virtualenvs/ansible/lib/python3.6/site-packages/ansible 
executable location = /home/elruso/.virtualenvs/ansible/bin/ansible 
python version = 3.6.2 (default, Jul 20 2017, 08:43:29) [GCC 5.4.1 20170519] 

Mise à jour: issue ouvert

+0

Est-ce que '127.0.0.1:' devrait avoir le ':' à la fin? –

+0

@JimWright oui http://docs.ansible.com/ansible/latest/intro_inventory.html –

Répondre

1

Le problème est reproductible en Python 3 et ressemble à un bug.

Utilisez Python 2 au lieu de Python 3, car ce dernier est not officially supported yet.

+0

On dirait triste vrai, mais je vois "Ansible supporte Python version 3.5 et supérieure seulement." suite à votre lien et j'ai Python 3.6.2 –

+2

Mais ce n'est pas comme si vous pouviez prendre n'importe quelle chaîne hors contexte et affirmer que c'est vrai. L'article commence clairement avec une déclaration "aperçu technique de support Python 3. * Dans la prévisualisation seulement> 3.5 est inclus – techraf

1

Il y a un bogue dans la version 2.4.0 sur python 3 (en essayant de trouver les .yml octets dans une liste de chaînes).

Ce bogue a été corrigé dans ce commit https://github.com/ansible/ansible/commit/72bdf7aa7e1b867380201092dff65338d59cd8fa, il peut être publié comme 2.4.1.

+0

Mais vous savez que vous répondez à la même personne qui a soumis le problème sur GitHub? – techraf

+1

Oui, mais don Ne vous inquiétez pas, je l'ai également documenté sur le sujet: https://github.com/ansible/ansible/issues/30977#issuecomment-333460412 afin que tout le monde qui atterrit ici ou sur github puisse comprendre ce qui se passe et quand il devrait être publié. –