2016-04-21 10 views
2

Ich habe folgendes ansible Textbuch Paket-Updates über einen Cluster zu tun:Run Textbuch auf Servern mit geteiltem NFS

- hosts: cluster 
    become: true 
    become_user: root 
    tasks: 
    - name: updates a server 
    apt: update_cache=yes 
    - name: upgrade a server 
    apt: upgrade=full 

Wenn ich es laufen, der Knoten, der NFS-Controller ausführt ganz gut, aber die zwei Knoten, die ein NFS-Mount auf dem Home-Verzeichnis haben schlagen mit dem folgenden Fehler:

$ansible-playbook upgrade-servers.yml -K 
SUDO password: 

PLAY *************************************************************************** 

TASK [setup] ******************************************************************* 
fatal: [nej-worker2]: FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "\r\n/usr/bin/python: can't open file '/home/gms/.ansible/tmp/ansible-tmp-1461269057.4-144211747884693/setup': [Errno 13] Permission denied\r\n", "msg": "MODULE FAILURE", "parsed": false} 
ok: [iznej] 
fatal: [nej-worker1]: FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "\r\n/usr/bin/python: can't open file '/home/gms/.ansible/tmp/ansible-tmp-1461269057.4-16590584976890/setup': [Errno 13] Permission denied\r\n", "msg": "MODULE FAILURE", "parsed": false} 

TASK [updates a server] ******************************************************** 
ok: [iznej] 

TASK [upgrade a server] ******************************************************** 
changed: [iznej] 

NO MORE HOSTS LEFT ************************************************************* 

PLAY RECAP ********************************************************************* 
iznej      : ok=3 changed=1 unreachable=0 failed=0 
nej-worker1    : ok=0 changed=0 unreachable=0 failed=1 
nej-worker2    : ok=0 changed=0 unreachable=0 failed=1 

ich habe laufen pip auf den Aktien ähnliche Probleme hat, mit dem Update ist das Build-Verzeichnis zu umleiten --set-build mit ... Ich nehme das an ist das Problem mit Ansible, da es auf dem NFS-Controller arbeitet und nicht auf denen mit den Servern mit dem freigegebenen/bereitgestellten Laufwerk.

Antwort

3

Verstanden. Benötigt, um remote_tmp = /tmp/.ansible zu meiner ansible.cfg Datei hinzuzufügen. Sehen Sie hier Ansible config parameters Voila!

Das Problem ist, dass wenn Ansible sudo ausführt, das root-Konto kein Benutzerkonto auf den NFS-eingehängten Freigaben ist.

0

Zitiert RHEL 6 Security Guide:

"By default, NFS shares change the root user to the nfsnobody user, an unprivileged user account. This changes the owner of all root-created files to nfsnobody, which prevents uploading of programs with the setuid bit set. If no_root_squash [option] is used, remote root users are able to change any file on the shared file system and leave applications infected by Trojans for other users to inadvertently execute."

Mit anderen Worten, dies ist ein Standard und sicheres Verhalten NFS.