Impossible de faire fonctionner les commandes sudo avec Ansible
-
21-12-2019 - |
Question
J'essaie d'utiliser Ansible pour provisionner une box Vagrant et un serveur EC2.Cela fonctionne bien sur la box Vagrant lors de l'utilisation de --connection=local, mais il semble simplement ignorer le sudo :Vraie ligne
Quand je fais ça :
---
- 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 le répertoire personnel de l'utilisateur normal, appartenant à l'utilisateur normal.L'utilisateur n'a pas de mot de passe et je peux utiliser des commandes avec sudo sans qu'on me le demande.Qu'est-ce que je rate?
La solution
Vous devez également ajouter l'option "sudo_user".
Détails:
sudo utilise la valeur de sudo_user pour obtenir le nom d'utilisateur et sudo_user est par défaut root, donc dans votre exemple, vous vous connectez en tant que root (ce nom d'utilisateur provient de "remote_user") et faites
sudo su - root -c "mkdir ~/test"
http://docs.ansible.com/intro_configuration.html#sudo-user
Et oui, le répertoire a été créé dans sudo_user home.