Ich habe eine Antwort 2.1.0 auf meinem Server, wo ich die Bereitstellung über Vagrant und auf dem PC zu tun. Die Rolle "bereitstellen" haben:Ansible 2.1.0 using then/tan_user kann Berechtigungen für temporäre Datei nicht setzen
- name: upload code
become: true
become_user: www-data
git: [email protected]:****.git
dest=/var/www/main
key_file=/var/www/.ssh/id_rsa
accept_hostkey=true
update=yes
force=yes
register: fresh_code
notify: restart php-fpm
tags: fresh_code
In diesem Fall mit ansible 2.1.0 ich einen Fehler:
fatal: [default]: FAILED! => {"failed": true, "msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user. For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
Es es ansible 2.0.1.0, die ich auf meinem PC verwenden, ist alles normalerweise - Ordner/var/www/habe Ordner Haupt mit Besitzer und Gruppe www-data
Wenn ich nur benutze_anwender: www-data und wenn ich benutze_method: sudo mit ist_user: www-data - ich habe denselben Fehler
Was muss getan werden, um dies zu beheben?
Vielen Dank für die Wiedergabe. Für mich helfe zweite Antwort. Ich habe acl-tools installiert und das Problem gelöst. Im Playbook benutze ich 'wird: true gewordene_user: www-data' und alles geht gut – DeamonMV
Die Installation des' acl' Moduls auf Debian Servern (Option 2) war bei weitem die einfachste Option für mich, und das funktioniert auch, wenn Sie "verlassen temporäre Dateien auf dem Server "zum Debuggen aktiviert. Ich habe es aufgegeben, Ansible-Pipelining funktionieren zu lassen (OS X 10.11-Client, Debian 7-Server, habe verschiedene Konfigurationsdateiänderungen versucht, aber nichts hat funktioniert). Ich fand auch, dass die Verwendung der "connect as root" -Option zu einem nicht damit zusammenhängenden Fehler führte, bei dem der Großteil des Playbooks stillgelegt wurde. – RichVel
Wenn Sie diese schwer zu Google Symptome bekommen, wenn Sie die "connect as root" -Technik mit '--ask-werden-password' verwenden (Option 3), ist die Ursache das Problem - installieren Sie einfach das' acl'-Modul behebe sie: "Playbook fragt nach dem sudo-Passwort und benutzt es für sudo (du bekommst einen Passwortfehler, wenn es falsch eingegeben wurde), aber es wird ohne Fehler nach der implicitable-Task [setup] beendet (was anscheinend erfolgreich ist)". Scheint wie ein Ansible 2.1.0 Bug. – RichVel