A diretiva Ansible Become para executar comandos como usuário especificado

Ansible Become Directive Run Commands



Usando o Ansible, você pode realizar várias operações em máquinas remotas usando comandos brutos ou manuais do Ansible. Por padrão, um playbook Ansible é executado no host remoto como o mesmo usuário no controlador Ansible. Isso significa que, se você precisar executar um comando como outro usuário na máquina remota, precisará especificá-lo explicitamente no manual do Ansible.

Para implementar a funcionalidade de execução de comandos como outro usuário, você precisará usar o recurso sudo que está disponível em sistemas Linux. A diretiva Tornar Ansible permite que você execute comandos como o usuário especificado.







As informações do usuário são especificadas em um manual do Ansible usando as variáveis ​​se tornar, como se torne_passar, para especificar a senha do usuário se tornar_usuário, bem como qual usuário pode executar o comando.



Como executar o Ansible Tasks como Root

Para executar um comando específico como usuário root no Ansible, você pode implementar a diretiva tornar-se e definir o valor como ‘true’. Isso informa ao Ansible para implementar o sudo sem argumentos ao executar o comando.



Por exemplo, considere um manual do Ansible que atualiza o pacote do servidor MySQL e o reinicia. Em operações normais do Linux, você precisa fazer login como usuário root para realizar tais tarefas. No Ansible, você pode simplesmente chamar a diretiva tornar-se: sim, conforme mostrado abaixo:





- hosts: todos

tornar-se:sim

tarefas:

- nome: Ansible runComoroot e update sys

yum:

nome: mysql-server

estado: mais recente

- nome:

service.service:
nome: mysqld

estado: reiniciado

No manual acima, usamos a diretiva tornou-se e não especificamos o usuário tornou-se_user, uma vez que qualquer comando na diretiva tornou-se executado como root por padrão.

Isso é semelhante a especificá-lo como:



- hosts: todos

tornar-se:sim

tornar-se_user: root

tarefas:

- nome: Ansible runComoroot e update sys

yum:
nome: mysql-server

estado: mais recente

- nome: service.service:

nome: mysqld

estado: reiniciado

Como executar o Ansible Tasks como Sudo

Para executar uma tarefa Ansible como um usuário específico, em vez do usuário root normal, você pode usar a diretiva torne-se_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 tornou-se_user, você deve ativar a diretiva tornar-se primeiro, pois o tornar-se_user não pode ser usado sem esta diretiva ativada.

Considere o seguinte manual, no qual o comando é executado como o usuário nobody.

- nome: Execute umcomando Comooutro usuário(ninguém)
comando:psdo

tornar-se:verdade

tornar-se_método:Está

tornar-se_usuário: ninguém

torne-se_flags:'-s / bin / bash'

No fragmento do manual acima, implementamos as diretivas tornar-se, tornar-se_user e outras tornar-se.

  1. tornar-se_método : Isso define o método de escalonamento de privilégios, como su ou sudo.
  2. diretiva tornar-se_usuário : Isso especifica o usuário para executar o comando como; isso não implica em se tornar: sim.
  3. torne-se_flags : Isso define os sinalizadores a serem usados ​​para a tarefa especificada.

Agora você pode executar o manual acima com o ansible-playbook filename.yml e ver o resultado por si mesmo. Para tarefas com saída, pode ser necessário implementar o módulo de depuração.

Como executar o Ansible se com senha

Para executar uma diretiva tornar-se que requer uma senha, você pode dizer ao 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 torne-se_pass.yml--ask-be-pass

Você também pode especificar o sinalizador -K, que executa operações semelhantes ao comando acima. Por exemplo:

ansible-playbook torne-se_pass.yml-PARA

Depois de especificado, será solicitada uma senha quando as tarefas estiverem em execução.

NOTA : Você também pode usar a diretiva tornar-se nos comandos RAW do Ansible AD HOC usando o sinalizador -b. Para saber mais, verifique a documentação fornecida abaixo:

https://linkfy.to/becomeDocumentation

Conclusão

Depois de ler este artigo, agora você deve saber como usar a diretiva Ansible BECOME para executar o escalonamento de privilégios para várias tarefas.

Por motivos de segurança, é melhor implementar restrições para várias contas e especificar explicitamente quando elas são usadas. Portanto, o escalonamento de privilégios é um aspecto importante do uso de sudo e su no Ansible.