Table of Contents

Automação de patches e atualizações do Linux com Ansible

No mundo acelerado e preocupado com a segurança de hoje, automatizar a correção e a atualização dos sistemas Linux é crucial para garantir a estabilidade do sistema e atenuar as vulnerabilidades. Com a multiplicidade de distribuições Linux disponíveis, pode ser um desafio gerenciar atualizações em diferentes plataformas de forma eficiente. Felizmente, o Ansible, uma poderosa ferramenta de automação, oferece uma solução unificada para automatizar patches e atualizações em várias distribuições do Linux. Neste artigo, exploraremos como usar o Ansible para automatizar o processo de aplicação de patches e atualização para distribuições baseadas em Debian, baseadas em Ubuntu, baseadas em RHEL, baseadas em Alpine e outras. Também forneceremos um exemplo de playbook Ansible detalhado que lida com a instalação de patches e atualizações em diferentes distros do Linux, juntamente com instruções sobre como configurar credenciais Ansible e arquivos de host para todos os sistemas de destino.

Pré-requisitos

Antes de mergulhar no processo de automação, vamos garantir que temos os pré-requisitos necessários. Esses incluem:

  1. Instalação do Ansible: Para usar o Ansible, você precisa instalá-lo no sistema a partir do qual executará as tarefas de automação. Você pode seguir a documentação oficial do Ansible em how to install Ansible para obter instruções detalhadas.

  2. Inventory Configuration: Crie um arquivo de inventário que liste os sistemas de destino que você deseja gerenciar com o Ansible. Cada sistema deve ter seu endereço IP ou nome de host especificado. Por exemplo, você pode criar um arquivo de inventário chamado hosts.ini com o seguinte conteúdo:

[debian]
debian-host ansible_host=<debian_ip_address>

[ubuntu]
ubuntu-host ansible_host=<ubuntu_ip_address>

[rhel]
rhel-host ansible_host=<rhel_ip_address>

[alpine]
alpine-host ansible_host=<alpine_ip_address>

Substituir <debian_ip_address> <ubuntu_ip_address> <rhel_ip_address> e <alpine_ip_address> com os respectivos endereços IP ou nomes de host dos sistemas de destino.

  1. Acesso SSH: Certifique-se de ter acesso SSH aos sistemas de destino usando autenticação baseada em chave SSH. Isso permitirá que o Ansible se conecte com segurança aos sistemas e execute as tarefas necessárias.

Ansible Playbook para aplicação de patches e atualizações

Para automatizar o processo de patching e atualização para várias distribuições do Linux, podemos criar um playbook Ansible que lida com a instalação de patches e atualizações em diferentes distros. Abaixo está um exemplo de playbook:

---
- name: Patching and Updating Linux Systems
  hosts: all
  become: yes

  tasks:
    - name: Update Debian-based Systems
      when: ansible_os_family == 'Debian'
      apt:
        update_cache: yes
        upgrade: dist

    - name: Update RHEL-based Systems
      when: ansible_os_family == 'RedHat'
      yum:
        name: '*'
        state: latest

    - name: Update Alpine-based Systems
      when: ansible_os_family == 'Alpine'
      apk:
        update_cache: yes
        upgrade: yes

No manual acima:

  • O hosts A linha especifica os sistemas de destino para cada tarefa. O playbook será executado em sistemas agrupados em debian ubuntu rhel e alpine
  • O become: yes A instrução permite que o playbook seja executado com privilégios administrativos.
  • A primeira tarefa atualiza os sistemas baseados em Debian e Ubuntu usando o apt módulo.
  • A segunda tarefa atualiza os sistemas baseados em RHEL usando o yum módulo.
  • A terceira tarefa atualiza os sistemas baseados em Alpine usando o apk módulo.

Observe que as tarefas são condicionadas com base nos nomes dos grupos para direcionar os sistemas apropriados.

Configurando credenciais Ansible e arquivos de host

Para configurar credenciais Ansible e arquivos de host para os sistemas de destino, siga estas etapas:

  1. Crie um arquivo Ansible Vault para armazenar informações confidenciais, como credenciais SSH. Você pode usar o seguinte comando para criar um arquivo vault:
ansible-vault create credentials.yml
  1. Atualize o arquivo de inventário (hosts.ini com as credenciais SSH apropriadas para cada sistema de destino. Por exemplo:
[debian]
debian-host ansible_host=<debian_ip_address> ansible_user=<debian_username> ansible_ssh_pass=<debian_ssh_password>

[ubuntu]
ubuntu-host ansible_host=<ubuntu_ip_address> ansible_user=<ubuntu_username> ansible_ssh_pass=<ubuntu_ssh_password>

[rhel]
rhel-host ansible_host=<rhel_ip_address> ansible_user=<rhel_username> ansible_ssh_pass=<rhel_ssh_password>

[alpine]
alpine-host ansible_host=<alpine_ip_address> ansible_user=<alpine_username> ansible_ssh_pass=<alpine_ssh_password>

Substituir <debian_ip_address> <ubuntu_ip_address> <rhel_ip_address> e <alpine_ip_address> com os respectivos endereços IP dos sistemas de destino. Além disso, substitua <debian_username> <ubuntu_username> <rhel_username> e <alpine_username> com os nomes de usuário SSH apropriados para cada sistema. Por último, substitua <debian_ssh_password> <ubuntu_ssh_password> <rhel_ssh_password> e <alpine_ssh_password> com as senhas SSH correspondentes.

  1. Criptografe o arquivo hosts.ini usando o Ansible Vault:
ansible-vault encrypt hosts.ini

Forneça a senha do cofre quando solicitado.

Com as etapas acima, você configurou as credenciais necessárias do Ansible e os arquivos de host para todos os sistemas de destino

Executando o Playbook

Para executar o playbook e automatizar o processo de patch e atualização, siga estas etapas:

  1. Abra um terminal e navegue até o diretório onde você tem o arquivo playbook e o arquivo de inventário criptografado.

  2. Execute o seguinte comando para executar o playbook, fornecendo a senha do cofre quando solicitado:

ansible-playbook -i hosts.ini playbook.yml --ask-vault-pass
  1. O Ansible se conectará aos sistemas de destino, usará as credenciais fornecidas e executará as tarefas especificadas, atualizando os sistemas de acordo.

Parabéns! Você automatizou com êxito o patch e a atualização de diferentes distribuições do Linux usando o Ansible. Com o playbook Ansible e a configuração adequada de credenciais e arquivos de host, agora você pode gerenciar com eficiência o processo de aplicação de patches e atualização em sua infraestrutura Linux.

Conclusão

Automatizar o patch e a atualização de sistemas Linux com o Ansible simplifica e agiliza o processo, permitindo que os administradores de sistema gerenciem com eficiência as atualizações em várias distribuições do Linux. Seguindo as instruções fornecidas neste artigo, você aprendeu a criar um playbook do Ansible que lida com a instalação de patches e atualizações em diferentes distros do Linux. Além disso, você configurou credenciais Ansible e arquivos de host para direcionar os sistemas desejados. Abrace o poder da automação e aproveite os benefícios de uma infraestrutura Linux mais segura e bem mantida.

Referências

  1. Ansible Documentation
  2. Official Ansible Installation Guide