Nginx

ansible 符號連結的正確語法

  • September 22, 2016

使用 ansible 創建符號連結的正確語法是什麼? 我正在創建一個 Vagrant 虛擬環境並執行 ansible 作為我的供應商。一切正常,直到我嘗試從啟用站點的符號連結到我的站點 nginx 配置文件。這是我嘗試過的。

- 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

當我這樣做時,我遇到了以下錯誤。

錯誤:載入 YAML 腳本時出現語法錯誤,/Users/username/project/ansible/roles/nginx/tasks/main.yml

注意:錯誤可能實際上出現在這個位置之前:第 24 行,第 1 列

  • 名稱:到 example.dev.conf 的符號連結

文件:路徑=/etc/nginx/sites-enabled/example.dev.conf

狀態=連結

^ Ansible 未能成功完成。任何錯誤輸出都應該在上面可見。請修復這些錯誤,然後重試。

我也嘗試過使用src=/etc/nginx/sites-enabled而不是,path但我似乎無法在網上找到一個明確的例子。

眼鏡:

  • OSX 小牛隊
  • 流浪者 1.6.3
  • 虛擬盒子 4.3
  • nginx 1.6.0
  • 安可 1.6.2
  • Ubuntu 14.04

文件中

src,要連結到的文件的路徑(僅適用於 state=link)。將接受絕對、相對和不存在的路徑。相對路徑不展開。

您需要使用srcdest使用時state=link, 不是path。您還需要顛倒您的源和目標,這似乎是錯誤的方式(假設您真的想連結到sites-availablefrom sites-enabled) -src是連結到的路徑,dest是創建符號連結的位置。

- 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

引用自:https://unix.stackexchange.com/questions/137957