Syntaxe appropriée pour le lien symbolique ansible

24

Quelle est la syntaxe appropriée pour créer des liens symboliques en utilisant ansible? Je crée un environnement virtuel Vagrant et exécute ansible en tant que provisionneur. Tout fonctionne bien jusqu'à ce que j'essaie de créer un lien symbolique vers mon fichier de configuration nginx de site à partir de sites activés. Voici ce que j'ai essayé.

- name: Create symlink to example.com
  file: 
    path: /etc/nginx/sites-enabled/example.com 
    dest: /etc/nginx/sites-available/example.com 
    state: link
  notify: nginx reload

Lorsque je fais cela, je rencontre l'erreur suivante.

ERREUR: erreur de syntaxe lors du chargement du script YAML, /Users/username/project/ansible/roles/nginx/tasks/main.yml

Remarque: L'erreur peut réellement apparaître avant cette position: ligne 24, colonne 1

- nom: lien symbolique vers example.dev.conf

fichier: path = / etc / nginx / sites-enabled / example.dev.conf

état = lien

^ Ansible n'a pas réussi à se terminer. Toute sortie d'erreur doit être visible ci-dessus. Veuillez corriger ces erreurs et réessayer.

J'ai également essayé d'utiliser src=/etc/nginx/sites-enabledau lieu de pathmais je n'arrive pas à trouver un exemple définitif de cela sur le Web.

Spécifications:

  • OS X Mavericks
  • vagabond 1.6.3
  • VirtualBox 4.3
  • nginx 1.6.0
  • ansible 1.6.2
  • ubuntu 14.04
Jean Pierre
la source

Réponses:

35

De la documentation :

src , chemin du fichier à lier (s'applique uniquement à state = link). Acceptera les chemins absolus, relatifs et inexistants. Les chemins relatifs ne sont pas développés.

Vous devez utiliser srcet destlorsque vous utilisez state=link, non path. Vous devez également inverser votre source et votre destination, qui semblent être dans le mauvais sens (en supposant que vous voulez vraiment créer un lien sites-availabledepuis sites-enabled) - srcest le chemin vers destlequel créer un lien , c'est où créer le lien symbolique.

- name: Create symlink to example.com
  file: src=/etc/nginx/sites-available/example.com dest=/etc/nginx/sites-enabled/example.com state=link
  notify: nginx reload
Chris Down
la source