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-enabled
anstelle 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
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.
src
Sie müssen und verwenden , dest
wenn 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-available
von verlinken sites-enabled
) — src
ist der Pfad, auf den verwiesen wird, dest
ist 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