Ne pouvez pas obtenir des commandes sudo travailler avec Ansible
Je suis en train d'utiliser Ansible à disposition un Vagabond-fort et d'un EC2 serveur. Il fonctionne très bien sur le Vagabond de la boîte lors de l'utilisation de --connexion=local, mais il semble tout simplement ignorer le sudo: la Véritable ligne de
Quand je fais ceci:
---
- hosts: remote
vars_files:
- vars.yml
gather_facts: false
sudo: True
remote_user: root
tasks:
- name: test
file: state=directory path=~/test
Il crée le répertoire dans la normale répertoire home de l'utilisateur, détenue par l'utilisateur normal. L'utilisateur ne dispose pas d'un mot de passe, et je peux utiliser les commandes avec sudo sans être invité. Ce qui me manque?
Où voulez-vous créer ce répertoire? Dans
De la création du répertoire est juste un test pour voir qui est en train de faire de la création. Si la racine de l'exécution de la commande, comme je l'espère, il serait dans /root/test, si l'utilisateur ubuntu n'avez alors il serait à /home/ubuntu/test (ce qui est le cas à chaque fois).
Ce n'est pas la façon dont le
C'est vrai, mais qui n'était en réalité qu'une partie de l'épreuve. La deuxième partie est de la propriété. Le répertoire est créé dans le cadre normal du répertoire de l'utilisateur, et est la propriété de l'utilisateur normal, sens sudo n'est pas du tout.
root
's home?De la création du répertoire est juste un test pour voir qui est en train de faire de la création. Si la racine de l'exécution de la commande, comme je l'espère, il serait dans /root/test, si l'utilisateur ubuntu n'avez alors il serait à /home/ubuntu/test (ce qui est le cas à chaque fois).
Ce n'est pas la façon dont le
sudo
commande fonctionne...Vous pouvez facilement voir que par la connexion à ce serveur et à partir de votre ~/ run sudo mkdir test
. Vous allez voir qu'il est créé exactement où vous êtes, et non pas à la racine du ~/.C'est vrai, mais qui n'était en réalité qu'une partie de l'épreuve. La deuxième partie est de la propriété. Le répertoire est créé dans le cadre normal du répertoire de l'utilisateur, et est la propriété de l'utilisateur normal, sens sudo n'est pas du tout.
OriginalL'auteur jmickela | 2014-01-08
Vous devez vous connecter pour publier un commentaire.
Vous devez également ajouter "sudo_user" option.
Détails:
sudo utilise la valeur de sudo_user pour obtenir le nom d'utilisateur et sudo_user par défaut à la racine, donc dans votre exemple vous connecter en tant que root (ce nom d'utilisateur est venu de "remote_user") et de faire
sudo su - root -c "mkdir ~/test"
http://docs.ansible.com/intro_configuration.html#sudo-user
Et oui, le répertoire a été faite dans sudo_user la maison.
OriginalL'auteur tomu