Richtige Syntax für Ansible-Symlinks

Richtige Syntax für Ansible-Symlinks

Was ist die richtige Syntax zum Erstellen symbolischer Links mit Ansible? Ich erstelle eine virtuelle Vagrant-Umgebung und verwende Ansible als Provisioner. Alles funktioniert einwandfrei, bis ich versuche, von sites-enabled aus einen symbolischen Link zur Nginx-Konfigurationsdatei meiner Site zu erstellen. Folgendes habe ich versucht.

- 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

Wenn ich dies tue, wird der folgende Fehler angezeigt.

FEHLER: Syntaxfehler beim Laden des YAML-Skripts, /Users/username/project/ansible/roles/nginx/tasks/main.yml

Hinweis: Der Fehler kann tatsächlich vor dieser Position auftreten: Zeile 24, Spalte 1

- Name: Symlink zu example.dev.conf

Datei: Pfad=/etc/nginx/sites-enabled/example.dev.conf

Status=Link

^ Ansible konnte nicht erfolgreich abgeschlossen werden. Eventuelle Fehlerausgaben sollten oben sichtbar sein. Bitte beheben Sie diese Fehler und versuchen Sie es erneut.

Ich habe auch versucht, src=/etc/nginx/sites-enabledanstelle von zu verwenden path, kann im Internet jedoch kein eindeutiges Beispiel hierfür finden.

Spezifikationen:

  • OSX Mavericks
  • Landstreicher 1.6.3
  • VirtualBox 4.3
  • nginx 1.6.0
  • ansible 1.6.2
  • Ubuntu 14.04

Antwort1

Ausdie Dokumentation:

Quelle, Pfad der Datei, auf die verwiesen werden soll (gilt nur für Status=Link). Akzeptiert absolute, relative und nicht vorhandene Pfade. Relative Pfade werden nicht erweitert.

srcSie müssen und verwenden , destwenn Sie verwenden state=link, nicht path. Sie müssen außerdem Quelle und Ziel umkehren, die anscheinend falsch herum sind (vorausgesetzt, Sie möchten wirklich sites-availablevon verlinken sites-enabled) — srcist der Pfad, auf den verwiesen wird, destist der Ort, an dem der symbolische Link erstellt werden soll.

- 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

verwandte Informationen