Récemment, j'ai commencé à fouiller dans Ansible et à écrire mes propres cahiers. Cependant, j'ai du mal à comprendre la différence entre become
et become_user
. Si je comprends bien become_user
est quelque chose de similaire à su <username>
et become
signifie quelque chose comme Sudo su
ou "exécuter toutes les commandes en tant qu'utilisateur Sudo". Mais parfois, ces deux directives sont mélangées.
Pourriez-vous expliquer leur signification?
become_user
définit l'utilisateur qui est utilisé pour élévation de privilèges .
become
est simplement un drapeau pour activer ou désactiver le même.
Voici trois exemples qui devraient clarifier les choses:
Cette tâche sera exécutée en tant que root
, car root
est l'utilisateur par défaut pour l'élévation des privilèges:
- do: something
become: yes
Cette tâche sera exécutée en tant qu'utilisateur someone
, car l'utilisateur est défini de manière explicite:
- do: something
become: yes
become_user: someone
Cette tâche ne fera rien avec become_user
, parce que become
n'est pas défini et que sa valeur par défaut est false
/no
:
- do: something
become_user: someone
... à moins que devienne devienne true
à un niveau supérieur, par ex. un bloc, le playbook, le groupe ou host-vars etc.
Voici un exemple avec un bloc :
- become: yes
block:
- do: something
become_user: someone
- do: something
Le premier 1er est exécuté en tant qu'utilisateur someone
, le deuxième en tant que root
.
Si j'ai bien compris, le fait de devenir utilisateur est quelque chose de similaire à su et que cela signifie quelque chose comme Sudo su ou "exécuter toutes les commandes en tant qu'utilisateur Sudo".
Le défaut become_method
est Sudo
, donc Sudo do something
ou Sudo -u <become_user> do something
Fineprint: Bien sûr, " do: quelque chose " est un pseudocode. Mettez-y le module Ansible actuel.