Usando Ansible, puoi eseguire varie operazioni su macchine remote usando comandi raw 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, dovrai utilizzare la funzionalità sudo disponibile nei sistemi Linux. La direttiva Ansible diventa ti 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 si dice 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: tuttidiventa: sì
compiti:
- nome: Ansible esegui come root e aggiorna sys
yum:
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: tuttidiventa: sì
diventare_utente: root
compiti:
- nome: Ansible esegui come root e aggiorna sys
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 utente root normale, 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 diventa, poiché diventa_utente è inutilizzabile senza questa direttiva attivata.
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_metodo: su
diventare_utente: nessuno
diventare_flags: '-s /bin/bash'
Nello snippet del playbook sopra, abbiamo implementato le direttive diventa, diventa_utente e altre diventa.
- diventare_metodo: Imposta il metodo di escalation dei privilegi, come su o sudo.
- direttiva diventare_utente: specifica l'utente con cui eseguire il comando come; questo non implica diventare: si.
- diventare_bandiere: Imposta i flag da utilizzare per l'attività specificata.
Ora puoi eseguire il playbook sopra con il nome file ansible-playbook.yml e guarda tu stesso il risultato. 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 --ask-become-passPuoi anche specificare il flag -K, che esegue operazioni simili al comando precedente. Per esempio:
ansible-playbook diventare_pass.yml -KUna volta specificata, ti verrà richiesta una password durante l'esecuzione delle attività.
NOTA: puoi anche utilizzare la direttiva diventare nei comandi raw di Ansible AD HOC usando il flag -b. Per saperne di più, consulta la documentazione fornita di seguito:
https://linkfy.per/diventare Documentazione
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.