Ich möchte /etc/nginx/sites-enabled
mit einem Symlink zu meinem Repo ersetzen. Ich versuche, dies mit file
Modul zu tun, aber das funktioniert nicht, da das Dateimodul ein Verzeichnis mit Force-Option nicht entfernt.Wie ersetzt man ein Verzeichnis mit einem Symlink mit Ansible?
- 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
Ich könnte wieder auf die Shell zurückgreifen.
- 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
Gibt es einen besseren Weg dies zu erreichen, anstatt zurück in die Shell zu fallen?
Nun, da ich Ihre Frage richtig gelesen: eine Aufgabe Hinzufügen der Link-Ziel zu überprüfen, eine schöne Ergänzung sein könnte, warum wollen Sie um den gesamten sites-enabled-Ordner zu ersetzen? Ist es nicht gebräuchlicher, Links zu Sites hinzuzufügen, die für Websites aktiviert sind (oder woanders, wie Ihr Projekt)? –
So wurde es in der früheren Installation gemacht und ich versuchte dasselbe mit Ansible zu wiederholen. Eine Sache, die ich hätte tun können, ist symlink/repo/etc/nginx/sites-available/* nach/etc/nginx/sites-available /. In diesem Fall muss ich daran denken, ein Ansible-Playbook zu erstellen, wenn ich eine neue Site hinzufüge, die ich vermeiden wollte. –