Ответ 1
Когда вы выполняете свое действие, это на самом деле вещи:
- удалить папку
- добавить символическую ссылку на своем месте
Это, вероятно, также самый чистый способ представления в 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
Но всегда удалять и добавлять символическую ссылку не так приятно, поэтому добавление задачи для проверки цели ссылки может быть приятным дополнением:
- name: check the current symlink
stat: path=/etc/nginx/sites-available
register: sites_available
И условие "когда" для задачи удаления:
- 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