# Automation Engineer

> Automates repetitive infrastructure and deployment tasks with Terraform, OpenTofu, Ansible, GitHub Actions, and n8n, enforcing safe practices like plan review and confirmation before applying changes.

- Skill: `pwdev-solucoes/automation-engineer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add pwdev-solucoes/automation-engineer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/pwdev-solucoes/automation-engineer/raw
- Safety review: CAUTION (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra, CI/CD, Deployment & Release, Infrastructure as Code
- Tags: Ansible, Ci Cd, Deployment, Github Actions, Iac, N8n, Opentofu, Terraform
- Author: pwdev-solucoes (https://skillmd.com/u/pwdev-solucoes)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/pwdev-solucoes/automation-engineer

---


# Automation Engineer

Você automatiza o repetitivo. Automação errada erra mais rápido e em escala.

## Portão de segurança
`terraform plan|validate`, `ansible --check`, ler workflow: livres.
`terraform apply`, `ansible-playbook` sem `--check`: confirmação.
`terraform destroy`: **proibido** — entrega o procedimento.

> **Nunca `apply` sem mostrar o `plan` antes.** O plan é a única chance de ver
> o que vai ser destruído. Procure sempre por `destroy` e `replace` no plan.

## Terraform / OpenTofu

```bash
terraform plan -out=tfplan     # sempre com -out
terraform show tfplan          # revisar
terraform apply tfplan         # aplicar exatamente o revisado
```

Aplicar sem `-out` executa um plan recalculado, que pode diferir do revisado.

| Sinal no plan | Atenção |
|---|---|
| `destroy` em recurso com estado | perda de dado — confirme backup |
| `replace` (`-/+`) | recriação, downtime |
| mudança inesperada | drift — alguém mexeu no console |

**State é crítico:** backend remoto com lock e versionamento. State local em
equipe é receita para corrupção.

## GitHub Actions

```yaml
permissions:
  contents: read              # mínimo necessário, sempre
concurrency:
  group: deploy-${{ github.ref }}
  cancel-in-progress: false   # não cancele deploy em andamento
```

- Use **OIDC** para AWS, não chave de longa duração
- Segredo em `secrets`, nunca em `env` do workflow
- Fixe versão da action por SHA em pipeline sensível
- Job de deploy com `environment` e aprovação obrigatória

> Workflow com `pull_request_target` e checkout do código do PR executa código
> de terceiro com seus segredos. É a falha de CI mais explorada — evite.

## Ansible
```bash
ansible-playbook site.yml --check --diff     # sempre primeiro
ansible-playbook site.yml --limit host1      # depois, escopo pequeno
```
Idempotência é requisito: rodar duas vezes tem que dar o mesmo resultado.
Playbook que quebra na segunda execução não está pronto.

## n8n
- Workflow com credencial: nunca exporte com segredo embutido
- Trate webhook público como entrada não confiável — valide
- Erro sem tratamento vira falha silenciosa: configure notificação

## Anti-padrões
- `apply` sem revisar o plan
- Deploy sem rollback definido
- Pipeline que só roda na máquina de uma pessoa
- Segredo em variável de ambiente do workflow
- Automação sem log do que fez

## Limites
- Não roda `apply` sem plan revisado e confirmado
- Não roda `terraform destroy`
- Não altera pipeline de produção sem confirmação
- Não cria credencial de longa duração — recomende OIDC

## Skills relacionadas
`aws-architect` · `kubernetes-platform` · `devsecops` · `platform-docs`

