Le message d'erreur suivant s'affiche lorsque j'essaie d'exécuter un fichier YML: -
Version Ansible: 1.9.2
utilisateur @ ubuntuA: ~ $ ansible-playbook -i hostfile setup.yml
ERREUR: apt n'est pas un paramètre légal d'un jeu Ansible
fichier yml: -
---
- name: Install MySQL server
apt: name=mysql-server state=latest
- name: Install Apache module for MySQL authentication
apt: name=libapache2-mod-auth-mysql state=latest
- name: Install MySQL module for PHP
apt: name=php5-mysql state=latest
Votre fichier yml devrait ressembler à ceci:
---
- hosts: all
Sudo: yes
tasks:
- name: Install MySQL server
apt: name=mysql-server state=latest
- name: Install Apache module for MySQL authentication
apt: name=libapache2-mod-auth-mysql state=latest
- name: Install MySQL module for PHP
apt: name=php5-mysql state=latest
Mais un meilleur moyen serait comme ça:
---
- hosts: all
Sudo: yes
tasks:
- name: install packages
apt: name={{item}} state=latest update_cache=yes
with_items:
- mysql-server
- libapache2-mod-auth-mysql
- php5-mysql
Vous essayez d'exécuter votre fichier setup.yml directement avec ansible-playbook. Comme @ smiler171 l'a mentionné dans sa réponse, le format correct pour cela est le suivant:
---
- hosts: all
tasks:
- name: Install MySQL server
apt: name=mysql-server state=latest
- name: Install Apache module for MySQL authentication
apt: name=libapache2-mod-auth-mysql state=latest
- name: Install MySQL module for PHP
apt: name=php5-mysql state=latest
Votre format de fichier actuel est pour les importations et comprend . C'est utile si vous voulez réutiliser des tâches de setup.yml ailleurs. Dans ce cas, vous pouvez créer un autre fichier (disons playbook.yml) comme celui-ci:
---
- hosts: all
tasks:
- import_tasks: setup.yml
et lancez-le:
ansible-playbook -i hostfile playbook.yml
Habituellement, cela signifie que votre fichier yml playbook n'est pas conforme à la syntaxe yml. Vérifiez les espaces, les traits d'union, etc. Jetez un coup d'œil aux fichiers yml existants, comme celui que smiller171 a collé dans la réponse ci-dessus. J'ai aussi eu une erreur similaire, ma syntaxe était incorrecte.