Como atualizar o Ansible para a versão mais recente

AnsibleBeginner
Pratique Agora

Introdução

Ansible é uma ferramenta de automação de código aberto poderosa que ganhou ampla adoção na indústria de TI. À medida que o Ansible evolui, é importante manter sua instalação atualizada para aproveitar os recursos e melhorias mais recentes. Este tutorial irá guiá-lo através do processo de atualização do Ansible para a versão mais recente no Ubuntu, que é o sistema operacional usado neste ambiente de laboratório.

Compreendendo o Ansible e Verificando Sua Versão Atual

Antes de atualizarmos o Ansible, é útil entender o que é o Ansible e verificar qual versão você tem instalada atualmente.

O que é Ansible?

Ansible é uma plataforma de automação de código aberto que simplifica o gerenciamento de configuração, a implantação de aplicativos e a automação de tarefas. Ele usa a sintaxe YAML para criar playbooks, que são documentos que descrevem o estado desejado de seus sistemas.

Alguns benefícios importantes do Ansible incluem:

  • Arquitetura sem agente (Agentless architecture): Não há necessidade de instalar agentes nos nós gerenciados
  • Sintaxe simples: Usa arquivos YAML legíveis por humanos
  • Execução idempotente: Executar o mesmo playbook várias vezes produz o mesmo resultado
  • Extensível: Suporta módulos e plugins personalizados

Verificando Sua Versão Atual do Ansible

Vamos começar verificando se o Ansible já está instalado e, em caso afirmativo, qual versão você possui. Abra um terminal e execute:

ansible --version

Você deve ver uma saída semelhante a esta:

ansible [core 2.12.0]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/labex/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
  jinja version = 3.0.3
  libyaml = True

A primeira linha exibe sua versão atual do Ansible. Se você não vir uma saída como esta, o Ansible pode não estar instalado ainda, o que é bom porque o instalaremos na próxima etapa.

Compreendendo o Versionamento do Ansible

O Ansible segue o versionamento semântico (semantic versioning) com três números: major.minor.patch

  • Versão principal (Major version): Mudanças significativas que podem exigir modificações em seus playbooks
  • Versão secundária (Minor version): Novos recursos sem quebras de compatibilidade
  • Versão de correção (Patch version): Correções de bugs e pequenas melhorias

Agora que entendemos o que é o Ansible e verificamos nossa versão atual, estamos prontos para prosseguir com a instalação ou atualização do Ansible na próxima etapa.

Instalando ou Atualizando o Ansible no Ubuntu

Nesta etapa, instalaremos ou atualizaremos o Ansible no sistema Ubuntu 22.04. Usaremos o PPA (Personal Package Archive) oficial do Ansible para obter a versão estável mais recente.

Adicionando o Repositório PPA do Ansible

Primeiro, precisamos garantir que temos a dependência necessária para adicionar PPAs:

sudo apt update
sudo apt install -y software-properties-common

Este comando atualiza o índice de pacotes e instala o pacote software-properties-common, que fornece o comando add-apt-repository.

Agora, vamos adicionar o repositório PPA oficial do Ansible:

sudo add-apt-repository --yes --update ppa:ansible/ansible

Você verá uma saída mostrando que o repositório foi adicionado ao seu sistema. A flag --yes confirma automaticamente a adição, e --update atualiza a lista de pacotes imediatamente.

Instalando a Versão Mais Recente do Ansible

Com o repositório adicionado, agora podemos instalar a versão mais recente do Ansible:

sudo apt install -y ansible

A flag -y confirma automaticamente a instalação sem solicitar confirmação.

Este comando irá instalar o Ansible, caso ele ainda não esteja presente, ou atualizá-lo para a versão mais recente disponível no PPA.

Verificando a Instalação ou Atualização

Após a conclusão da instalação, vamos verificar se o Ansible está instalado corretamente e verificar sua versão:

ansible --version

A saída deve mostrar a versão mais recente do Ansible disponível no PPA. Se você tinha uma versão mais antiga instalada anteriormente, agora deverá ver um número de versão mais recente.

Para acompanhar nosso progresso para o script de verificação, vamos criar um arquivo marcador:

touch /tmp/ansible_version_checked
touch /tmp/ansible_installed

Agora, instalamos ou atualizamos com sucesso o Ansible em nosso sistema Ubuntu. Na próxima etapa, exploraremos como usar alguns comandos básicos do Ansible para verificar se nossa instalação está funcionando corretamente.

Verificando Sua Instalação do Ansible com um Playbook Simples

Agora que o Ansible está instalado, vamos confirmar que ele funciona corretamente criando e executando um playbook simples. Playbooks são arquivos YAML que descrevem o estado desejado de seus sistemas e as tarefas que o Ansible deve realizar para atingir esse estado.

Criando um Playbook de Teste

Primeiro, vamos criar um diretório para nosso projeto Ansible:

mkdir -p ~/project/ansible-test
cd ~/project/ansible-test

Agora, vamos criar um playbook simples usando o editor de código integrado. No WebIDE, clique no ícone "Explorer" na barra lateral esquerda, navegue até o diretório ansible-test que acabamos de criar e crie um novo arquivo chamado test-playbook.yml.

Adicione o seguinte conteúdo a este arquivo:

---
- name: Test Ansible Installation
  hosts: localhost
  connection: local
  gather_facts: no

  tasks:
    - name: Print a message
      debug:
        msg: "Ansible is installed and working correctly!"

    - name: Get Ansible version
      command: ansible --version
      register: ansible_version_output

    - name: Display Ansible version
      debug:
        msg: "{{ ansible_version_output.stdout_lines[0] }}"

    - name: Create a test file
      file:
        path: /tmp/ansible-test-file.txt
        state: touch
        mode: "0644"

Este playbook faz o seguinte:

  1. Destina-se à máquina local (localhost)
  2. Imprime uma mensagem de sucesso
  3. Recupera e exibe a versão do Ansible
  4. Cria um arquivo de teste em /tmp/ansible-test-file.txt

Executando o Playbook

Agora vamos executar o playbook para verificar se o Ansible está funcionando corretamente:

cd ~/project/ansible-test
ansible-playbook test-playbook.yml

Você deve ver uma saída semelhante a esta:

PLAY [Test Ansible Installation] ***********************************************

TASK [Print a message] *********************************************************
ok: [localhost] => {
    "msg": "Ansible is installed and working correctly!"
}

TASK [Get Ansible version] *****************************************************
changed: [localhost]

TASK [Display Ansible version] *************************************************
ok: [localhost] => {
    "msg": "ansible [core 2.12.0]"
}

TASK [Create a test file] ******************************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

A saída mostra que todas as tarefas foram concluídas com sucesso. O changed=2 no resumo indica que duas tarefas fizeram alterações no sistema (obter a versão e criar o arquivo).

Verificando o Arquivo de Teste

Vamos verificar se o arquivo de teste foi criado:

ls -l /tmp/ansible-test-file.txt

Você deve ver o arquivo listado com as permissões que especificamos:

-rw-r--r-- 1 labex labex 0 Aug 30 12:34 /tmp/ansible-test-file.txt

Vamos marcar esta etapa como concluída para nosso script de verificação:

touch /tmp/ansible_playbook_tested

Parabéns! Você instalou com sucesso a versão mais recente do Ansible e verificou que ele funciona corretamente executando um playbook simples. Isso confirma que sua instalação do Ansible está totalmente funcional e pronta para uso.

Compreendendo a Configuração e os Módulos do Ansible

Agora que temos o Ansible instalado e funcionando, vamos explorar sua configuração e o conceito de módulos.

Configuração do Ansible

O Ansible usa arquivos de configuração para controlar seu comportamento. O principal arquivo de configuração é ansible.cfg, que pode existir em vários locais. Vamos examinar o arquivo de configuração padrão:

ls -la /etc/ansible/

Você deve ver a estrutura de diretórios padrão do Ansible:

total 20
drwxr-xr-x  2 root root 4096 Aug 30 12:00 .
drwxr-xr-x 85 root root 4096 Aug 30 12:00 ..
-rw-r--r--  1 root root 8669 Aug 30 12:00 ansible.cfg
-rw-r--r--  1 root root 1021 Aug 30 12:00 hosts

Vamos dar uma olhada no arquivo hosts, que é o arquivo de inventário padrão:

cat /etc/ansible/hosts

O arquivo de inventário contém uma lista de hosts que o Ansible pode gerenciar. Por padrão, ele contém exemplos que estão comentados.

Criando uma Configuração Personalizada

Vamos criar nosso próprio arquivo de configuração do Ansible em nosso diretório de projeto. No WebIDE, crie um novo arquivo chamado ansible.cfg no diretório ~/project/ansible-test com o seguinte conteúdo:

[defaults]
inventory = ./inventory
host_key_checking = False
stdout_callback = yaml

Agora, vamos criar um arquivo de inventário simples. No WebIDE, crie um novo arquivo chamado inventory no diretório ~/project/ansible-test com o seguinte conteúdo:

[local]
localhost ansible_connection=local

Explorando os Módulos do Ansible

Os módulos do Ansible são unidades de código reutilizáveis que executam tarefas específicas. Vamos explorar alguns dos módulos disponíveis:

ansible-doc -l | wc -l

Este comando lista todos os módulos disponíveis e os conta. Você deve ver um grande número, normalmente mais de 1000 módulos.

Vamos visualizar a documentação de um módulo específico, como o módulo file que usamos em nosso playbook:

ansible-doc file

Você pode pressionar q para sair do visualizador de documentação.

Criando um Playbook Mais Complexo

Agora, vamos criar um playbook mais avançado que demonstra mais alguns módulos do Ansible. No WebIDE, crie um novo arquivo chamado modules-demo.yml no diretório ~/project/ansible-test com o seguinte conteúdo:

---
- name: Ansible Modules Demo
  hosts: localhost
  connection: local
  gather_facts: yes

  tasks:
    - name: Display system information
      debug:
        msg: "System: {{ ansible_distribution }} {{ ansible_distribution_version }}"

    - name: Create a directory
      file:
        path: /tmp/ansible-demo
        state: directory
        mode: "0755"

    - name: Copy a file
      copy:
        content: "Created by Ansible modules demo playbook\n"
        dest: /tmp/ansible-demo/info.txt
        mode: "0644"

    - name: Gather information about a file
      stat:
        path: /tmp/ansible-demo/info.txt
      register: file_info

    - name: Show file information
      debug:
        msg: "File created at {{ file_info.stat.mtime }}"

Vamos executar este playbook:

cd ~/project/ansible-test
ansible-playbook modules-demo.yml

O playbook faz o seguinte:

  1. Exibe informações sobre seu sistema
  2. Cria um diretório em /tmp/ansible-demo
  3. Cria um arquivo com conteúdo personalizado
  4. Coleta informações sobre o arquivo
  5. Exibe o tempo de modificação do arquivo

Vamos marcar esta etapa como concluída para nosso script de verificação:

touch /tmp/ansible_modules_explored

Agora você aprendeu sobre a configuração do Ansible, arquivos de inventário e explorou vários módulos. Estes são componentes essenciais para trabalhar com o Ansible de forma eficaz.

Resumo

Neste laboratório, você aprendeu com sucesso como instalar e atualizar o Ansible para a versão mais recente em um sistema Ubuntu. Você realizou várias tarefas importantes:

  1. Compreendeu os conceitos básicos do Ansible e seu sistema de versionamento
  2. Instalou ou atualizou o Ansible usando o repositório PPA oficial
  3. Verificou sua instalação criando e executando um playbook simples
  4. Explorou arquivos de configuração do Ansible e gerenciamento de inventário
  5. Aprendeu sobre os módulos do Ansible e sua documentação
  6. Criou e executou playbooks mais complexos para realizar várias tarefas

Essas habilidades fornecem uma base sólida para trabalhar com o Ansible em projetos de automação. Ao manter sua instalação do Ansible atualizada, você pode aproveitar os recursos mais recentes, correções de bugs e atualizações de segurança.

À medida que você continua sua jornada com o Ansible, pode explorar tópicos mais avançados, como roles (papéis), collections (coleções) e Ansible AWX/Tower para gerenciamento empresarial. Essas ferramentas ajudarão você a construir fluxos de trabalho de automação mais sofisticados e gerenciar a infraestrutura em escala.