Introdução
O Ansible é uma poderosa ferramenta de automação que simplifica a gestão de sistemas remotos. Ao trabalhar com o Ansible, é crucial compreender e configurar o método padrão de elevação de privilégios para garantir a execução segura e eficiente dos seus playbooks. Este tutorial irá guiá-lo através do processo de definir o método padrão de elevação de privilégios no Ansible.
Compreendendo a Elevação de Privilégios
A elevação de privilégios é um conceito fundamental no Ansible, que permite executar tarefas com permissões elevadas nos hosts de destino. Isto é particularmente importante ao gerir sistemas que requerem acesso administrativo ou de nível root para realizar certas ações, como instalar software, modificar configurações do sistema ou gerir serviços.
No Ansible, o método padrão de elevação de privilégios é sudo, que permite ao playbook Ansible executar comandos com as permissões do utilizador sudo nos hosts de destino. No entanto, o Ansible também suporta outros métodos de elevação de privilégios, como su, pbrun, pfexec, doas e runas, dependendo das necessidades do sistema de destino.
Para compreender a importância da elevação de privilégios no Ansible, considere o seguinte cenário:
- hosts: webservers
tasks:
- name: Instalar o servidor web Apache
apt:
name: apache2
state: present
Neste exemplo, a tarefa de instalar o servidor web Apache requer privilégios administrativos nos hosts de destino. Se o playbook Ansible for executado sem o método apropriado de elevação de privilégios, a tarefa falhará e o servidor web não será instalado.
Configurando o método padrão de elevação de privilégios no Ansible, pode garantir que todas as tarefas que requerem permissões elevadas são executadas com sucesso, sem a necessidade de especificar o método de elevação para cada tarefa individual.
Configurando o Método Padrão de Elevação de Privilégios
Para configurar o método padrão de elevação de privilégios no Ansible, pode usar as opções become e become_method no seu ficheiro de configuração do Ansible (normalmente ansible.cfg) ou no seu playbook.
Configurando em ansible.cfg
No ficheiro ansible.cfg, pode definir o método padrão de elevação de privilégios usando a seguinte configuração:
[privilege_escalation]
become=yes
become_method=sudo
Esta configuração define o método padrão de elevação de privilégios como sudo. Pode alterar o valor de become_method para outros métodos suportados, como su, pbrun, pfexec, doas ou runas, dependendo das necessidades do sistema de destino.
Configurando no Playbook
Alternativamente, pode configurar o método padrão de elevação de privilégios diretamente no seu playbook Ansible usando as opções become e become_method no nível de play ou tarefa. Por exemplo:
- hosts: webservers
become: yes
become_method: sudo
tasks:
- name: Instalar o servidor web Apache
apt:
name: apache2
state: present
Neste exemplo, as opções become e become_method são definidas no nível de play, o que significa que todas as tarefas no playbook usarão o método de elevação de privilégios sudo por defeito.
Também pode definir as opções become e become_method no nível de tarefa se precisar de usar um método de elevação diferente para tarefas específicas:
- hosts: webservers
tasks:
- name: Instalar o servidor web Apache
apt:
name: apache2
state: present
become: yes
become_method: sudo
Configurando o método padrão de elevação de privilégios, pode garantir que os seus playbooks Ansible executam tarefas com as permissões apropriadas, sem a necessidade de especificar o método de elevação para cada tarefa individual.
Aplicando Elevação de Privilégios em Playbooks
Agora que compreende como configurar o método padrão de elevação de privilégios no Ansible, vamos explorar como aplicá-lo nos seus playbooks.
Elevação de Privilégios no Nível de Play
Como mencionado anteriormente, pode definir as opções become e become_method no nível de play para aplicar o método padrão de elevação de privilégios a todas as tarefas dentro do play. Esta é uma forma conveniente de garantir que todas as tarefas que requerem permissões elevadas sejam executadas com sucesso.
- hosts: webservers
become: yes
become_method: sudo
tasks:
- name: Instalar o servidor web Apache
apt:
name: apache2
state: present
- name: Iniciar o serviço Apache
service:
name: apache2
state: started
Neste exemplo, as opções become e become_method são definidas no nível de play, o que significa que as tarefas "Instalar o servidor web Apache" e "Iniciar o serviço Apache" serão executadas com o método de elevação de privilégios sudo.
Elevação de Privilégios no Nível de Tarefa
Se precisar de usar um método diferente de elevação de privilégios para tarefas específicas, pode definir as opções become e become_method no nível de tarefa. Isto pode ser útil quando tem uma mistura de tarefas que requerem diferentes níveis de permissões.
- hosts: webservers
tasks:
- name: Instalar o servidor web Apache
apt:
name: apache2
state: present
become: yes
become_method: sudo
- name: Iniciar o serviço Apache
service:
name: apache2
state: started
become: yes
become_method: su
Neste exemplo, a tarefa "Instalar o servidor web Apache" utiliza o método de elevação de privilégios sudo, enquanto a tarefa "Iniciar o serviço Apache" utiliza o método su.
Aplicando a elevação de privilégios no nível apropriado nos seus playbooks Ansible, pode garantir que as suas tarefas são executadas com as permissões necessárias, melhorando a fiabilidade e a segurança da gestão da sua infraestrutura.
Resumo
Neste tutorial Ansible, aprendeu a configurar o método padrão de elevação de privilégios, essencial para a automação segura e sem problemas dos seus sistemas remotos. Compreendendo e aplicando o método de elevação apropriado, pode garantir que os seus playbooks Ansible executam com as permissões necessárias, permitindo-lhe gerir e manter a sua infraestrutura de forma mais eficaz.


