Ansible: replace kann eine lokal vorhandene Datei nicht finden
327
diegus
Ich versuche, eine einzelne Zeichenfolge in einer Konfigurationsdatei test.confmit Ansible zu ersetzen .
Das sind die zwei Aufgaben meiner Rolle:
- name: Check for conf locally local_action: stat path="{{ role_path }}/files/test.conf" register: stat_config # Place test_var within the test conf file - replace: dest: "{{ role_path }}/files/test.conf" regexp: 'to_be_replaced' replace: "{}" when: stat_config.stat.exists == True
In der ersten überprüfe ich das Vorhandensein der Datei (lokal), in der zweiten versuche ich, die to_be_replaceddurch die var zu ersetzen "{}". Hier ist die Ausgabe:
Wie Sie sehen, wird die Datei test.confhier /home/ubuntu/src/share/playbooks/roles/app/files/test.confvon der ersten Task aus gefunden, aber die zweite Task findet sie nicht unter demselben Pfad ..!
Was mache ich falsch?
1 Antwort auf die Frage
0
HoD
Bei der Ausgabe können wir nicht sicher sein, aber Ihre zweite Aufgabe ist nicht speziell für localhost. Versuche es mit:
# Place test_var within the test conf file - replace: dest: "{{ role_path }}/files/test.conf" regexp: 'to_be_replaced' replace: "{}" when: stat_config.stat.exists == True delegate_to: localhost
Ja, delegate_to: localhost macht den Trick! Vielen Dank
diegus vor 5 Jahren
0