Ansible符号链接的正确语法


24

使用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的符号链接

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

状态=链接

^ Ansible无法成功完成。任何错误输出都应该在上面可见。请更正这些错误,然后重试。

我也尝试使用src=/etc/nginx/sites-enabled代替,path但似乎无法在网络上找到明确的例子。

眼镜:

  • OSX小牛
  • 流浪汉1.6.3
  • 虚拟盒子4.3
  • nginx 1.6.0
  • Ansible 1.6.2
  • Ubuntu 14.04

Answers:


35

文档中

src,要链接的文件的路径(仅适用于state = link)。将接受绝对,相对和不存在的路径。相对路径不会扩展。

您需要使用srcdest使用state=link时不需要path。您还需要反转源和目标,这似乎是错误的方法(假设您确实sites-available要从链接到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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.