Skip to content

Instalando o Ansible no CentOS/RHEL

O Ansible é uma ferramenta de automação de configuração de servidores Linux que permite gerenciar e configurar múltiplos servidores de forma centralizada e segura. Com o Ansible, é possível automatizar tarefas como instalação de pacotes, co

linux 2 min read
Instalando o Ansible no CentOS/RHEL
Instalando o Ansible no CentOS/RHEL

O Ansible é uma ferramenta de automação de configuração de servidores Linux que permite gerenciar e configurar múltiplos servidores de forma centralizada e segura. Com o Ansible, é possível automatizar tarefas como instalação de pacotes, configuração de serviços, gerenciamento de usuários e grupo, entre outras.

Para começar a usar o Ansible, é necessário instalá-lo em um servidor Linux. O Ansible pode ser instalado usando o gerenciador de pacotes do sistema operacional, como o yum ou o apt.

Terminal window
# Instalando o Ansible no CentOS/RHEL
sudo yum install ansible
# Instalando o Ansible no Ubuntu/Debian
sudo apt-get install ansible

Após a instalação, é necessário configurar o Ansible para conectar-se aos servidores que serão gerenciados. Isso é feito criando um arquivo de inventário que contém as informações de conexão dos servidores.

O arquivo de inventário é um arquivo YAML que contém as informações de conexão dos servidores. Por exemplo:

# arquivo de inventário (hosts)
[servidores]
servidor1 ansible_host=192.168.1.100 ansible_user=root
servidor2 ansible_host=192.168.1.101 ansible_user=root

Os playbooks são arquivos YAML que contêm as instruções para configurar os servidores. Eles podem ser usados para realizar tarefas como instalação de pacotes, configuração de serviços, entre outras.

Aqui está um exemplo de playbook que instala o pacote “nginx” em todos os servidores do grupo “servidores”:

# playbook para instalar o nginx
---
- name: Instalar o nginx
hosts: servidores
become: yes
tasks:
- name: Instalar o pacote nginx
apt:
name: nginx
state: present

Para executar o playbook, use o comando ansible-playbook seguido do nome do playbook. Por exemplo:

Terminal window
ansible-playbook -i hosts playbook.yml

O Ansible tem uma variedade de módulos que podem ser usados para realizar tarefas específicas. Alguns exemplos de módulos incluem:

  • apt: para gerenciar pacotes no Ubuntu/Debian
  • yum: para gerenciar pacotes no CentOS/RHEL
  • service: para gerenciar serviços
  • user: para gerenciar usuários
  • group: para gerenciar grupos

Aqui está um exemplo de uso do módulo user para criar um usuário novo em todos os servidores do grupo “servidores”:

# playbook para criar um usuário novo
---
- name: Criar um usuário novo
hosts: servidores
become: yes
tasks:
- name: Criar o usuário
user:
name: novo_usuario
state: present
group: usuarios

Aqui estão algumas dicas práticas para usar o Ansible:

  • Sempre use o become: yes para executar tarefas que requerem privilégios de root.
  • Use o ansible-vault para criptografar senhas e outras informações sensíveis.
  • Use o ansible-galaxy para instalar e gerenciar roles.
  • Use o ansible-doc para visualizar a documentação dos módulos e comandos.

Aqui estão algumas armadilhas comuns ao usar o Ansible:

  • Esquecer de especificar o become: yes para tarefas que requerem privilégios de root.
  • Usar o sudo em vez do become: yes.
  • Não testar os playbooks antes de executá-los em produção.

Aqui estão algumas soluções para as armadilhas comuns:

  • Sempre testar os playbooks antes de executá-los em produção.
  • Usar o ansible-vault para criptografar senhas e outras informações sensíveis.
  • Usar o ansible-galaxy para instalar e gerenciar roles.

Agora que você sabe como usar o Ansible para automatizar a configuração de servidores Linux, aqui estão alguns próximos passos:

  • Aprender a usar os módulos do Ansible para realizar tarefas específicas.
  • Aprender a criar e gerenciar roles com o ansible-galaxy.
  • Aprender a usar o ansible-vault para criptografar senhas e outras informações sensíveis.
  • Aprender a integrar o Ansible com outras ferramentas de automação, como o Jenkins ou o GitLab CI/CD.