La direttiva Ansible Become per eseguire comandi come utente specificato

Ansible Become Directive Run Commands



Utilizzando Ansible, puoi eseguire varie operazioni su macchine remote utilizzando comandi non elaborati o playbook Ansible. Per impostazione predefinita, un playbook Ansible viene eseguito sull'host remoto come lo stesso utente sul controller Ansible. Ciò significa che se devi eseguire un comando come un altro utente sulla macchina remota, dovrai specificarlo esplicitamente nel tuo playbook Ansible.

Per implementare la funzionalità di esecuzione dei comandi come un altro utente, sarà necessario utilizzare la funzionalità sudo disponibile nei sistemi Linux. La direttiva Ansible diventa consente di eseguire comandi come utente specificato.







Le informazioni dell'utente vengono specificate in un playbook Ansible utilizzando le variabili diven, ad esempio diventa_pass, per specificare la password dell'utente diventa_utente e quale utente può eseguire il comando.



Come eseguire attività Ansible come root?

Per eseguire un comando specifico come utente root in Ansible, puoi implementare la direttiva diventare e impostare il valore su 'true'. In questo modo, Ansible indica ad Ansible di implementare sudo senza argomenti durante l'esecuzione del comando.



Ad esempio, considera un playbook Ansible che aggiorna il pacchetto del server MySQL e poi lo riavvia. Nelle normali operazioni Linux, è necessario accedere come utente root per eseguire tali attività. In Ansible, puoi semplicemente chiamare la direttiva diventare: yes, come mostrato di seguito:





- host: tutti

diventare:

compiti:

- nome: Ansible runcomeroot e aggiornamento del sistema

gnam:

nome: mysql-server

stato: ultimo

- nome:

servizio.servizio:
nome: mysqld

stato: riavviato

Nel playbook sopra, abbiamo usato la direttiva diventare e non abbiamo specificato l'utente diventare_utente, poiché tutti i comandi sotto la direttiva diventano vengono eseguiti come root per impostazione predefinita.

Questo è simile a specificarlo come:



- host: tutti

diventare:

diventare_utente: root

compiti:

- nome: Ansible runcomeroot e aggiornamento del sistema

yum:
nome: mysql-server

stato: ultimo

- nome:servizio.servizio:

nome: mysqld

stato: riavviato

Come eseguire attività Ansible come Sudo

Per eseguire un'attività Ansible come utente specifico, anziché come normale utente root, puoi utilizzare la direttiva diventare_utente e passare il nome utente dell'utente per eseguire l'attività. È come usare il comando sudo -u in Unix.

Per implementare la direttiva diventare_utente, devi prima attivare la direttiva diventare, poiché diventa_utente è inutilizzabile senza questa direttiva attivata.

Considera il seguente playbook, in cui il comando viene eseguito come utente nessuno.

- nome: Esegui acomando comeun altro utente(nessuno)
comando:psAgli

diventare:vero

metodo_diventato:suo

diventare_utente: nessuno

diventa_flag:'-s /bin/bash'

Nello snippet di playbook sopra, abbiamo implementato le direttive diventa, diventa_utente e altre.

  1. diventare_metodo : imposta il metodo di escalation dei privilegi, come su o sudo.
  2. direttiva diventare_utente : specifica l'utente con cui eseguire il comando come; questo non implica diventare: sì.
  3. diventare_bandiere : imposta i flag da utilizzare per l'attività specificata.

Ora puoi eseguire il playbook sopra con il filename.yml ansible-playbook e vedere il risultato da solo. Per le attività con un output, potrebbe essere necessario implementare il modulo di debug.

Come eseguire Ansible diventare con password

Per eseguire una direttiva diventare che richiede una password, puoi dire ad Ansible di chiedere una password quando si richiama il playbook specificato.

Ad esempio, per eseguire un playbook con una password, inserisci il comando seguente:

ansible-playbook diventare_pass.yml--chiedi-diventa-passa

Puoi anche specificare il flag -K, che esegue operazioni simili al comando precedente. Per esempio:

ansible-playbook diventare_pass.yml-A

Una volta specificata, ti verrà richiesta una password durante l'esecuzione delle attività.

NOTA Nota: puoi anche utilizzare la direttiva diventare nei comandi raw di Ansible AD HOC utilizzando il flag -b. Per saperne di più, consulta la documentazione fornita di seguito:

https://linkfy.to/becomeDocumentation

Conclusione

Dopo aver letto questo articolo, ora dovresti sapere come utilizzare la direttiva Ansible BECOME per eseguire l'escalation dei privilegi per varie attività.

Per motivi di sicurezza, è meglio implementare restrizioni per vari account e specificare esplicitamente quando vengono utilizzati. Quindi, l'escalation dei privilegi è un aspetto importante dell'uso di sudo e su in Ansible.