Simple ansible playbook erreur de syntaxe (YAML)
Je viens juste de commencer ansible et ont créé un simple playbook à déployer nginx sur un serveur cible. Le YAML playbook fichier (myplaybook.yml) ressemble à ceci:-
- name: Configure webserver with nginx
hosts: webservers
sudo: True
tasks:
- name: install nginx
- apt: name=nginx update_cache=yes
environment:
http_proxy: myproxy.com:8088
https_proxy: myproxy.com:8088
Quand j'execute:-
$ ansible-playbook myplaybook.yml
- Je obtenir:-
D'ERREUR: Erreur de Syntaxe lors du chargement de YAML script, nginx-ansible.yml
Remarque: L'erreur peut effectivement apparaître avant de cette position: ligne 7, colonne 23
- apt: name=nginx update_cache=yes
environment:
^
Je ne vois pas pourquoi cette erreur se produit, le fichier hosts contient l' [serveurs] section OK - peut aider quelqu'un?
Merci!
Vous devez vous connecter pour publier un commentaire.
Vous avez quelques problèmes avec votre fichier YAML. Tout d'abord,
- name
et- apt
ne devrait pas avoir le-
préfixe. Qui fait Ansible pense que vous avez une tâche avec un nom deinstall nginx
mais pas de module ou autre chose associée avec elle, alors vous avez une autre tâche ayant pas de nom, mais invoque l'apt module.Le deuxième problème est l'indentation. Vous disposez d'un espace supplémentaire à l'avant de la parole
environment
qui fait YAML pense que vous êtes le démarrage d'un nouvel élément enfant et pas seulement en ajoutant des attributs de la tâche en cours. Pour que toute votre tâche devrait ressembler à quelque chose comme ceci (et rappelez-vous que l'espacement est critique):apt
ligne pourname:
etupdate_cache:
séparément pour les lignes en retrait)