2016-07-10 28 views
15

Recentemente ho iniziato a scavare in Ansible e scrivere i miei libri. Tuttavia, ho un problema con la comprensione della differenza tra become e become_user. A mio avviso, become_user è qualcosa di simile a su <username> e become significa qualcosa come sudo su o "esegue tutti i comandi come utente sudo". Ma a volte queste due direttive sono miste.Differenza tra diventare e diventare utente in Ansible

Potresti spiegare il significato corretto di loro?

risposta

28

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

+0

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? –

+3

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

Problemi correlati