Ich versuche, das Synchronisierungsmodul zu verwenden, um eine Datei von einem Antible-Knoten zu einem Remote-Knoten zu kopieren.Synchronisieren Modul schlägt fehl mit werden
Ich möchte diese Dateien als UserB
auf den Remote-Knoten existieren, aber ich habe keinen direkten Zugriff auf UserB
. Stattdessen hat UserA
Sudo-Berechtigungen, um auf UserB
zu wechseln. Also logge ich mich als UserA
ein.
Meine Umgebung Datei sagt:
ansible_ssh_user=UserA
ansible_ssh_pass=<PassUserA>
ansible_become_method=sudo
ansible_become_user=UserB
ansible_become_pass=<PassUserA>
Meine Aufgabe ist:
- name: Copy and unarchive webapps node.
synchronize: src=/home/ansible/templates/app/Sprint6/webapps dest=/opt/msdp/ca/app checksum=yes
become: yes
Aber wenn ich das Textbuch laufe, bekomme ich einen Fehler:
fatal: [5.232.57.247]: FAILED! => {"changed": false, "cmd": "/usr/bin/rsync --delay-updates -F --compress --checksum --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=60s' --rsync-path=\"sudo rsync\" --out-format='<<CHANGED>>%i %n%L' \"/home/ansible/templates/app/Sprint6/webapps\" \"[email protected]:/opt/msdp/ca/app\"", "failed": true, "msg": "sudo: sorry, you must have a tty to run sudo\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]\n", "rc": 12}
Auf dem entfernten Knoten , nur UserB
kann schreiben unter: /opt/msdp/ca/app
Gibt es eine Config, die ich vermisse?
Vielen Dank für Ihre ausführliche Antwort. Ich habe Punkt 2 und 3 vollständig verstanden, aber ich habe Verständnisprobleme 1. Was meinst du damit zu sagen, wenn ich ssh_args = unter /etc/ansible/ansible.cfg aktiviere, benutze ich alles, was ich in der Lab-Datei definiert habe? Aber ich kann diese Eigenschaften bereits beim Verbinden mit meinem Zielknoten verwenden. –
Nein, diese Eigenschaften werden nicht für das Modul 'synchronize' verwendet und deshalb gibt es den zusätzlichen Parameter' use_ssh_args'. Ich weiß nicht, wie ich das anders ausdrücken soll. 'synchronize' Modul wird lokal ausgeführt und unterscheidet sich von anderen Modulen. Haben Sie die verknüpfte Dokumentseite überprüft? Es sagt im Grunde dasselbe aus. – techraf
Danke techraf! Ich verstehe es jetzt. Und Entschuldigung für "Labor" -Datei. Ich meinte Umweltakte. –