Ansible ssh en tant qu'utilisateur et exécute a root (attendez comme)

8

Je dois administrer un nombre important d'hôtes où il n'y a qu'un seul utilisateur capable d'accéder à partir de SSH (appelons-le foo) puis je dois me connecter en tant que root pour exécuter des commandes privilégiées.

L'utilisateur Foo n'a aucun type de privilèges sudo, donc je suis obligé de me connecter en tant que root pour exécuter des commandes privilégiées. J'utilise en fait un script expect pour faire ce travail (connexion ssh en tant que foo, connexion en tant que root via su) et je souhaite passer à Ansible. Je sais que je pourrais créer un nouvel utilisateur et lui donner des privilèges sudo ou essentiellement donner des privilèges sudo à foo, mais est-il possible de faire la même chose que je fais avec attendre avec Ansible?

Je voudrais faire la connexion ssh en tant que foo, puis exécuter des playbooks ou tout type de commande adhoc en tant que root. Je n'ai trouvé aucune information à ce sujet dans la documentation Ansible, donc je demande ici si quelqu'un a déjà eu ce genre d'interrogatoire.

Arka
la source

Réponses:

13

Avec ansible, vous pouvez utiliser sudoou su:

- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami

Vous pouvez également le faire à partir de la ligne de commande:

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml

Cette fonctionnalité est disponible depuis cette demande d'extraction et est présente dans la version 1.6.6 actuelle.

dawud
la source
1
Merci. Comment pourriez-vous avoir un mot de passe différent pour chaque hôte? ansible_su_pass n'existe pas
Arka
Avez-vous trouvé comment choisir le pass ansible su?
jeremieca
Depuis ansible 1.9.4, vous ne pouvez pas avoir de mots de passe différents pour chaque hôte. Vous pouvez cependant avoir différentes clés ssh.
bschlueter