Usando Ansible, você pode executar várias operações em máquinas remotas usando comandos brutos ou manuais de Ansible. Por padrão, um manual Ansible é executado no host remoto como o mesmo usuário no Ansible Controller. Isso significa que, se você precisar executar um comando como outro usuário na máquina remota, precisará especificá -lo explicitamente em seu manual Ansible.
Para implementar a funcionalidade dos comandos em execução como outro usuário, você precisará usar o recurso sudo que está disponível nos sistemas Linux. O Ansible se tornaria diretiva permite que você execute comandos como o usuário especificado.
As informações do usuário são especificadas em um manual Ansible usando as variáveis que se tornam, como se tornar_pass, para especificar a senha do usuário se tornar_user, bem como qual usuário pode executar o comando.
Como executar tarefas Ansible como raiz
Para executar um comando específico como o usuário root em Ansible, você pode implementar a diretiva e definir o valor como 'true.'Fazer isso diz Ansible para implementar o sudo sem argumentos ao executar o comando.
Por exemplo, considere um manual Ansible que atualiza o pacote MySQL-Server e depois reinicie-o. Nas operações normais do Linux, você precisaria fazer login como usuário root para executar essas tarefas. Em Ansible, você pode simplesmente ligar para a diretiva: sim, como mostrado abaixo:
- Hosts: todos
Torne -se: Sim
tarefas:
- Nome: Ansible Run como raiz e atualização Sys
yum:
Nome: MySQL-Server
Estado: mais recente
- nome:
serviço.serviço:
Nome: MySqld
Estado: reiniciado
No manual acima, usamos a diretiva e não especificamos o usuário FENDER_USER, já que qualquer comando sob a diretiva é executado como root por padrão.
Isso é semelhante a especificá -lo como:
- Hosts: todos
Torne -se: Sim
tornar -se_user: root
tarefas:
- Nome: Ansible Run como raiz e atualização Sys
yum:
Nome: MySQL-Server
Estado: mais recente
- Nome: Serviço.serviço:
Nome: MySqld
Estado: reiniciado
Como executar tarefas Ansible como sudo
Para executar uma tarefa Ansible como um usuário específico, e não o usuário root normal, você pode usar a diretiva FENDER_USER e passar o nome de usuário do usuário para executar a tarefa. É como usar o comando sudo -u no Unix.
Para implementar a diretiva FENDER_USER, você deve ativar a diretiva se tornar primeiro, à medida que o FENHERSE_USER é inutilizável sem essa diretiva ativada.
Considere o seguinte manual, no qual o comando é executado como o usuário ninguém.
- Nome: Execute um comando como outro usuário (ninguém)
Comando: PS Aux
tornar verdade
tornar -se_method: su
Torne -se_user: Ninguém
tornar-se_flags: '-s /bin /bash'
No trecho de manual acima, implementamos o FENHER, tornou -se_user e outros se tornam diretrizes.
Agora você pode executar o manual acima com o nome de arquivo Ansible-playbook.yml e veja o resultado para você. Para tarefas com uma saída, pode ser necessário implementar o módulo de depuração.
Como correr Ansible se tornará com senha
Para executar uma diretiva que requer uma senha, você pode dizer a Ansible para pedir uma senha ao invocar o manual especificado.
Por exemplo, para executar um manual com uma senha, digite o comando abaixo:
Ansible-playbook se tornar_pass.YML --SK-BECOME-PASS
Você também pode especificar o sinalizador -k, que executa operações semelhantes ao comando acima. Por exemplo:
Ansible-playbook se tornar_pass.yml -k
Uma vez especificado, você será solicitado para uma senha quando as tarefas estiverem executando.
OBSERVAÇÃO: Você também pode usar a diretiva e tornar -se em comandos Ansible Ad Hoc Raw usando o sinalizador -b. Para saber mais, consulte a documentação fornecida abaixo:
https: // linkfy.para/se tornou documentação
Conclusão
Depois de ler este artigo, agora você deve saber como usar o Ansible se tornará uma diretiva para executar a escalada de privilégios para várias tarefas.
Por razões de segurança, é melhor implementar restrições para várias contas e especificar explicitamente quando eles são usados. Portanto, a escalada de privilégios é um aspecto importante do uso de sudo e su em Ansible.