Ana*_*thu 20 ansible ansible-playbook
我想/etc/nginx/sites-enabled用符号链接代替我的仓库.我正在尝试使用file模块执行此操作,但这不起作用,因为文件模块不会使用force选项删除目录.
- name: setup nginx sites-available symlink
file: path=/etc/nginx/sites-available src=/repo/etc/nginx/sites-available state=link force=yes
notify: restart nginx
Run Code Online (Sandbox Code Playgroud)
我可以回到使用shell.
- name: setup nginx sites-available symlink
shell: test -d /etc/nginx/sites-available && rm -r /etc/nginx/sites-available && ln -sT /repo/etc/nginx/sites-available /etc/nginx/sites-available
notify: restart nginx
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一点,而不是回到shell?
Ram*_*nte 43
当你采取行动时,它实际上是:
这可能也是在Ansible中表达最干净的方式:
tasks:
- name: remove the folder
file: path=/etc/nginx/sites-available state=absent
- name: setup nginx sites-available symlink
file: path=/etc/nginx/sites-available
src=/repo/etc/nginx/sites-available
state=link
force=yes
notify: restart nginx
Run Code Online (Sandbox Code Playgroud)
但是,总是删除和添加符号链接不是很好,所以添加一个任务来检查链接目标可能是一个很好的补充:
- name: check the current symlink
stat: path=/etc/nginx/sites-available
register: sites_available
Run Code Online (Sandbox Code Playgroud)
删除任务的"何时"条件:
- name: remove the folder (only if it is a folder)
file: path=/etc/nginx/sites-available state=absent
when: sites_available.stat.isdir is defined and sites_available.stat.isdir
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20937 次 |
| 最近记录: |