2016-04-21 1 views
2

Je le PlayBook Ansible ci-dessous pour faire des mises à jour de package sur un cluster:Run PlayBook sur les serveurs avec NFS partagé montage

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

Quand je le lance, le nœud qui est le contrôleur NFS exécute très bien, mais la deux noeuds qui ont un montage NFS sur le répertoire échoue avec l'erreur suivante:

$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 

J'ai eu des problèmes similaires en cours d'exécution pip sur les actions, avec le correctif étant de rediriger le répertoire de construction en utilisant --set-build ... Je suppose que est le problème avec Ansible, car il fonctionne sur le contrôleur NFS et non ceux avec les serveurs avec le lecteur partagé/monté.

Répondre

3

Vous l'avez. Nécessaire pour ajouter remote_tmp = /tmp/.ansible à mon fichier ansible.cfg. Voir ici Ansible config parameters Voila!

Le problème est que lorsque Ansible exécute sudo, le compte racine n'est PAS un compte d'utilisateur sur les partages montés NFS.

0

RHEL 6 Guide Citant sécurité:

"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."

En d'autres termes, il est un défaut et le comportement NFS sécuriser.