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:
- Destina-se à máquina local (
localhost) - Imprime uma mensagem de sucesso
- Recupera e exibe a versão do Ansible
- 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:
- Exibe informações sobre seu sistema
- Cria um diretório em
/tmp/ansible-demo - Cria um arquivo com conteúdo personalizado
- Coleta informações sobre o arquivo
- 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:
- Compreendeu os conceitos básicos do Ansible e seu sistema de versionamento
- Instalou ou atualizou o Ansible usando o repositório PPA oficial
- Verificou sua instalação criando e executando um playbook simples
- Explorou arquivos de configuração do Ansible e gerenciamento de inventário
- Aprendeu sobre os módulos do Ansible e sua documentação
- 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.


