become_user
definisce l'utente utilizzato per privilege escalation.
become
semplicemente è un flag per attivare o disattivare privilege escalation.
Ecco tre esempi che dovrebbe rendere più chiaro:
Questa attività verrà eseguita come root
, perché root
è l'utente predefinito per escalation di privilegi:
- do: something
become: yes
Questa attività verrà eseguita come utente someone
, perché l'utente è impostato explciitly:
- do: something
become: yes
become_user: someone
Questo compito non farà nulla con become_user
, perché become
non è impostato e il valore predefinito è false
/no
:
- do: something
become_user: someone
... a meno che diventare stato impostato a true su un livello più alto, ad esempio, il playbook, gruppo o host-vars ecc.
Da quello che ho capito diventa_user è qualcosa di simile a su, e diventa significa qualcosa come sudo su o "esegue tutti i comandi come utente sudo".
L'impostazione predefinita become_method
è sudo
, così sudo do something
o sudo -u <become_user> do something
Quindi, se voglio attivare escalation di privilegi per i compiti a playbook posso impostare diventare: Vero, una volta prima che io definisco i compiti, e poi basta usare become_user ogni volta che voglio, giusto? –
Dipende da cosa intendi con "una volta prima". Se si imposta 'become' su una singola attività, è attiva solo per quella singola attività. Se si desidera impostare 'diventa' per attività multiple, è necessario impostarlo su un livello superiore. Puoi usare [blocchi] (http://docs.ansible.com/ansible/playbooks_blocks.html) o [include] (http://docs.ansible.com/ansible/playbooks_roles.html#task-include-files- e-incoraggiare-riutilizzare) per questo o impostare il tuo ruolo. – udondan