使用 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
- 安塞波1.6.2
- ubuntu 14.04
答案1
从文档:
源代码,要链接到的文件的路径(仅适用于 state=link)。将接受绝对路径、相对路径和不存在的路径。相对路径不展开。
使用时需要使用src
and ,而不是。您还需要反转源和目标,这似乎是错误的方式(假设您确实想链接到from ) -是链接到的路径,是创建符号链接的位置。dest
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