Prawidłowa składnia odpowiadającego dowiązania symbolicznego

24

Jaka jest właściwa składnia do tworzenia dowiązań symbolicznych przy użyciu ansible? Tworzę wirtualne środowisko Vagrant i używam ansible jako mojego dostawcy. Wszystko działa dobrze, dopóki nie spróbuję utworzyć dowiązania symbolicznego do pliku konfiguracyjnego nginx mojej witryny z włączonymi witrynami. Oto, co próbowałem.

- 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

Gdy to robię, pojawia się następujący błąd.

BŁĄD: błąd składni podczas ładowania skryptu YAML, /Users/username/project/ansible/roles/nginx/tasks/main.yml

Uwaga: błąd może faktycznie pojawić się przed tą pozycją: wiersz 24, kolumna 1

- name: dowiązanie symboliczne do example.dev.conf

plik: ścieżka = / etc / nginx / sites-enabled / example.dev.conf

stan = link

^ Ansible nie powiodło się. Każde wyjście błędu powinno być widoczne powyżej. Napraw te błędy i spróbuj ponownie.

Próbowałem również użyć src=/etc/nginx/sites-enabledzamiast, pathale nie mogę znaleźć ostatecznego przykładu tego w Internecie.

Okular:

  • OSX Mavericks
  • włóczęga 1.6.3
  • VirtualBox 4.3
  • nginx 1.6.0
  • ansible 1.6.2
  • ubuntu 14.04
Jean Pierre
źródło

Odpowiedzi:

35

Z dokumentacji :

src , ścieżka pliku do linku (dotyczy tylko stanu = link). Akceptuje ścieżki bezwzględne, względne i nieistniejące. Ścieżki względne nie są rozwinięte.

Musisz używać, srca destkiedy używasz state=link, nie path. Musisz także odwrócić źródło i miejsce docelowe, które wydają się być niewłaściwe (zakładając, że naprawdę chcesz połączyć się sites-availablez sites-enabled) - srcjest to ścieżka do łącza, destgdzie jest tworzenie dowiązania symbolicznego.

- 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
źródło