Visão Geral
Curso Work Automation With Ansible. Este curso prático e intensivo é projetado para administradores de sistemas, engenheiros de DevOps, desenvolvedores, profissionais de infraestrutura e qualquer um que busque automatizar tarefas repetitivas e complexas em ambientes de TI. Do ponto de vista técnico, você aprenderá a dominar o Ansible, uma ferramenta de automação poderosa, simples de usar e baseada em agentes (agentless). O curso cobrirá desde os fundamentos da instalação e configuração do Ansible, passando pela escrita de Playbooks eficientes em YAML, até o gerenciamento de inventários dinâmicos, o uso de roles para reutilização de código e a integração com variáveis e Vault para segurança. Focaremos em cenários práticos de automação de infraestrutura, desde a configuração de servidores e implantação de aplicações até o gerenciamento de configurações e orquestração de ambientes complexos.
Curso Work Automation With Ansible, a automação com Ansible é uma habilidade indispensável que permite às organizações acelerar a entrega de software, reduzir erros humanos, padronizar ambientes e liberar equipes para focar em tarefas de maior valor estratégico. A capacidade de automatizar a provisionamento, configuração e implantação de infraestrutura e aplicações resulta em maior eficiência operacional, economia de custos, melhor consistência e maior agilidade nos negócios. Profissionais que dominam o Ansible são altamente valorizados no mercado, pois contribuem diretamente para a modernização e otimização das operações de TI.
Conteúdo Programatico
Módulo 1: Introdução ao Ansible e Fundamentos (4 horas)
- 1.1. O Desafio da Automação em TI:
- Por que automatizar? Benefícios (velocidade, consistência, redução de erros).
- Cenários de automação: Provisionamento, Configuração, Implantação, Orquestração.
- 1.2. Introdução ao Ansible:
- O que é Ansible? Filosofia "Agentless" (sem agentes).
- Arquitetura do Ansible: Control Node, Managed Nodes, Inventário, Playbooks, Módulos.
- Comparativo com outras ferramentas de automação (Chef, Puppet, SaltStack).
- 1.3. Instalação e Configuração Inicial:
- Instalando Ansible no Control Node.
- Configuração básica do Ansible (
ansible.cfg
).
- Configurando autenticação SSH (chaves SSH).
- 1.4. Inventários Estáticos:
- Estrutura e sintaxe do arquivo
hosts
(INI e YAML).
- Definindo grupos de hosts e variáveis de inventário.
- 1.5. Primeiros Comandos Ad-Hoc:
- Executando comandos simples em hosts remotos.
- Módulos comuns (
ping
, command
, shell
).
- Prática: Instalar Ansible e configurar chaves SSH. Criar um inventário estático. Executar comandos ad-hoc simples em máquinas virtuais de laboratório.
Módulo 2: Escrevendo Playbooks Ansible (6 horas)
- 2.1. Anatomia de um Playbook:
- Estrutura YAML de um Playbook: Plays, Tasks, Módulos.
- Conceitos de Idempotência.
- 2.2. Módulos Ansible Essenciais:
- Gerenciamento de pacotes (
apt
, yum
).
- Gerenciamento de serviços (
service
).
- Gerenciamento de arquivos (
copy
, template
, file
).
- Gerenciamento de usuários (
user
).
- Comandos (
command
, shell
).
- 2.3. Variáveis e Fatos (Facts):
- Definindo variáveis em Playbooks, inventários, e linha de comando.
- Fatos (Facts): Coleta de informações sobre os Managed Nodes (
setup
module).
- Registrando saídas de tarefas (
register
).
- 2.4. Condicionais e Loops:
when
statement para execução condicional.
loop
para iterar sobre listas.
- 2.5. Handlers e Notificadores:
- O que são Handlers e como eles garantem que as tarefas sejam executadas apenas quando necessário.
- Prática: Escrever Playbooks para:
- Instalar um pacote (nginx/apache) em vários hosts.
- Configurar um arquivo de configuração com variáveis.
- Criar um usuário em todos os hosts.
- Usar condicionais e loops.
- Criar um handler para reiniciar um serviço.
Módulo 3: Organização, Reutilização e Variáveis Avançadas (6 horas)
- 3.1. Estrutura de Projeto Ansible:
- Organização de Playbooks, inventários e roles.
- Diretórios padrão do Ansible.
- 3.2. Ansible Roles:
- Conceito de Roles: Estrutura modular para reutilização de código.
- Criando e utilizando Roles (
ansible-galaxy init
).
- Variáveis em Roles (
defaults
, vars
).
- Tasks, Handlers, Templates, Files em Roles.
- 3.3. Gerenciamento de Variáveis Avançado:
- Prioridade das variáveis no Ansible.
group_vars
e host_vars
: Variáveis específicas para grupos e hosts.
extra-vars
(-e
): Variáveis passadas pela linha de comando.
- 3.4. Templates com Jinja2:
- Uso de templates Jinja2 para arquivos de configuração dinâmicos.
- Filtros Jinja2.
- Prática: Refatorar Playbooks anteriores em Roles. Criar um novo Role para configurar um servidor web completo (instalação, arquivo de configuração, serviço). Usar
group_vars
e host_vars
para customizar configurações.
Módulo 4: Segurança, Inventários Dinâmicos e Orquestração (5 horas)
- 4.1. Ansible Vault:
- Protegendo dados sensíveis (senhas, chaves de API).
- Criptografando e descriptografando arquivos, strings e variáveis.
- Melhores práticas de uso do Vault.
- 4.2. Inventários Dinâmicos:
- Benefícios de inventários dinâmicos (nuvem, CMDBs).
- Configuração e uso de scripts de inventário (ex: para AWS EC2, Azure VMs).
- 4.3. Orquestração com Ansible:
- Executando Playbooks em sequência para coordenar implantações complexas.
- Delegating tasks (
delegate_to
).
- Controle de fluxo (
serial
, run_once
).
- 4.4. Tags e Limiting:
- Executando apenas partes de um Playbook (
--tags
).
- Limitando a execução a um subconjunto de hosts (
--limit
).
- Prática: Criptografar senhas usando Ansible Vault. (Se possível) Configurar um inventário dinâmico para uma pequena infraestrutura em nuvem. Orquestrar um deploy de aplicação de múltiplos tiers.
Módulo 5: Boas Práticas, Testes e Ansible Galaxy (3 horas)
- 5.1. Boas Práticas de Automação com Ansible:
- Organização do código.
- Idempotência e previsibilidade.
- Versionamento de Playbooks (Git).
- Revisão de código.
- 5.2. Troubleshooting e Depuração:
- Modo Verbose (
-vvv
).
- Módulo
debug
.
- Checagem de sintaxe (
--syntax-check
).
- Modo Dry Run (
--check
).
- 5.3. Ansible Galaxy:
- Compartilhando e utilizando Roles da comunidade.
- Instalando Roles do Galaxy.
- 5.4. Próximos Passos:
- Integração com CI/CD.
- Ansible Tower / AWX.
- Ansible Collections.
- Prática: Realizar debugging em um Playbook com erros intencionais. Instalar e utilizar uma Role do Ansible Galaxy. Discutir estratégias de integração com CI/CD.