Usando Ansible, è possibile eseguire varie operazioni su macchine remote usando comandi grezzi 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 è necessario eseguire un comando come un altro utente sulla macchina remota, dovrai specificarlo esplicitamente nel tuo playbook Ansible.
Per implementare la funzionalità dell'esecuzione dei comandi come un altro utente, è necessario utilizzare la funzione sudo disponibile in Linux Systems. La direttiva ANSIBE diventa consente di eseguire comandi come utente specificato.
Le informazioni dell'utente sono specificate in un playbook Ansible utilizzando le variabili diventate, come diventare_pass, per specificare la password dell'utente diventa_user, nonché quale utente può eseguire il comando.
Come eseguire le attività ansili come radice
Per eseguire un comando specifico come utente di root in Ansible, è possibile implementare la direttiva diventa e impostare il valore su 'true.'Fare questo dice ad Ansible di implementare sudo senza argomenti durante l'esecuzione del comando.
Ad esempio, considera un playbook Ansible che aggiorna il pacchetto MySQL-Server e quindi lo riavvia. Nelle normali operazioni di Linux, è necessario accedere come utente root per eseguire tali attività. In Ansible, puoi semplicemente chiamare la direttiva diventata: sì, come mostrato di seguito:
- Host: tutto
Diventa: sì
compiti:
- Nome: Ansible Run come root e aggiorna sys
Yum:
Nome: Mysql-Server
Stato: ultimo
- nome:
servizio.servizio:
Nome: mysqld
Stato: riavviato
Nel Playbook di cui sopra, abbiamo usato la direttiva diventata e non abbiamo specificato l'utente Beving_User, poiché qualsiasi comando nella direttiva diventa eseguita come root per impostazione predefinita.
Questo è simile a specificarlo come:
- Host: tutto
Diventa: sì
diventare_user: root
compiti:
- Nome: Ansible Run come root e aggiorna sys
Yum:
Nome: Mysql-Server
Stato: ultimo
- Nome: servizio.servizio:
Nome: mysqld
Stato: riavviato
Come eseguire compiti ansible come sudo
Per eseguire un'attività Ansible come utente specifico, piuttosto che l'utente root normale, è possibile utilizzare la direttiva Beving_User e passare il nome utente dell'utente per eseguire l'attività. È come usare il comando sudo -u in unix.
Per implementare la direttiva Beving_User, è necessario attivare prima la direttiva diventata, poiché Beving_User è inutilizzabile senza questa direttiva.
Considera il seguente playbook, in cui il comando viene eseguito come utente nessuno.
- Nome: esegui un comando come un altro utente (nessuno)
Comando: PS Aux
diventa vero
diventare_method: su
Diventa_user: nessuno
diventare_flags: '-s /bin /bash'
Nello snippet di Playbook sopra, abbiamo implementato il Betti, Beving_User e altri Diventa direttive.
Ora puoi eseguire il playbook sopra con il nome file Ansible-Playbook.YML e vedi il risultato per te stesso. Per le attività con un output, potrebbe essere necessario implementare il modulo di debug.
Come eseguire Ansible diventa con la password
Per eseguire una direttiva diventa che richiede una password, puoi dire ad Ansible di chiedere una password quando invocano il playbook specificato.
Ad esempio, per eseguire un playbook con una password, inserisci il comando di seguito:
Ansible-Playbook diventa_pass.YML --ask-become-pass
È inoltre possibile specificare il flag -k, che esegue operazioni simili al comando sopra. Per esempio:
Ansible-Playbook diventa_pass.yml -k
Una volta specificato, ti verrà richiesto una password durante l'esecuzione delle attività.
NOTA: Puoi anche usare la direttiva diventata nei comandi ANSIBILE AD HOC RAW utilizzando il flag -b. Per saperne di più, controlla la documentazione fornita di seguito:
https: // linkfy.a/bevingocumentation
Conclusione
Dopo aver letto questo articolo, ora dovresti sapere come usare la direttiva ANSIBE per eseguire l'escalation dei privilegi per vari compiti.
Per motivi di sicurezza, è meglio implementare le 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.