promovaweb/specsfy

specsfy-specialist-ansible

Criar e revisar playbooks, roles e Vault com Ansible.

Quelltext ansehen

Verwendung

  1. Installationsbefehl kopieren und das Quellpaket vor der Installation in der eigenen Agentenumgebung prüfen.
  2. Benötigte Werkzeuge, Zugangsdaten und Hosts im Original prüfen.
  3. Eingabe und gewünschtes Ergebnis beschreiben und die Ausgabe mit den Quellen abgleichen.
npx skills add https://github.com/promovaweb/specsfy --skill specsfy-specialist-ansible

Vor dem Start

  • Die Installation umfasst weder Modellabo noch API-Kontingent oder Dateizugriffsrechte.
  • Sterne und Installationen zeigen Aktivität, keine unabhängige Qualitäts- oder Sicherheitsprüfung.
Originales Skill-Dokument

Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.

Ansible

Quando usar

  • Acionar quando o projeto tem playbooks, roles, inventory, ansible.cfg

ou requirements.yml/galaxy.yml de collections.

  • Acionar também para revisar se uma automação existente é realmente

idempotente antes de rodá-la contra um ambiente compartilhado.

  • Não acionar para orquestrar serviços já containerizados em cluster; usar

$specsfy-specialist-docker-swarm nesse caso; Ansible aqui entra no provisionamento do host, não na orquestração de serviços do Swarm.

  • Combinar com $specsfy-specialist-delivery-engineering quando a execução

do playbook é uma etapa de um pipeline de deploy.

Fluxo

Apresente o plano, informe o progresso e termine com arquivos alterados e validações executadas. Para texto público, siga o Contrato Editorial Compartilhado aplicável ao projeto consumidor.

  1. Em release ou deploy completo, trabalhar sob

$specsfy-specialist-deploy e usar o SEMVER, a imagem e os manifestos já preparados pela orquestradora.

  1. Confirmar hosts, grupos, ambiente-alvo, método de conexão e escopo

exato de hosts antes de qualquer execução com efeito.

  1. Usar ./deploy check-hosts para apresentar todos os hosts em tabela e

confirmar o módulo ping antes da primeira task remota. Usar ./deploy sync-keys para adicionar somente chaves públicas ao usuário deploy, sem excluir entradas existentes do authorized_keys.

  1. Inspecionar a precedência de variáveis aplicável (ver tabela em

references/standards.md) e as versões fixadas de collections e ansible-core.

  1. Modelar o estado desejado com módulos idempotentes e roles coesas, uma

responsabilidade por role.

  1. Proteger secrets com Ansible Vault ou um provedor externo (lookup em

cofre gerenciado); nunca em texto plano no repositório.

  1. Para execução pelo agente, usar ./deploy run --non-interactive sob a

orquestradora de deploy. Respeitar arquivo, script, Vault IDs e configuração nativa já fornecidos. Sem fonte externa, orientar ./deploy configure-vault no terminal humano. Não pedir ou ler a senha pela conversa. O comando ./deploy run permanece manual, com entrada oculta.

  1. Validar sintaxe, ansible-lint, check mode e diff sem revelar segredos no

output.

  1. Testar a role em ambiente descartável e repetir a mesma execução para

provar que a segunda rodada não relata changed.

  1. Aplicar em produção com serialização (serial), limites (--limit) e

regra de parada (max_fail_percentage/any_errors_fatal) compatíveis com o alcance da mudança.

Padrões

  • Criar um preflight separado para conferir versão do controlador, sistema do

alvo, acesso ao Docker, papel de manager, login no registry, collections, imagem imutável e Docker Secrets antes do play com escrita.

  • Quando a stack usar Cloudflare Tunnel, criar

cloudflare_tunnel_token a partir de vault_cloudflare_tunnel_token com no_log: true. A stack recebe somente o nome do Docker Secret.

  • Copiar manifests versionados para um diretório estável no host, validar cada

um com docker stack config e publicar as stacks em ordem de dependência.

  • Após cada publicação, consultar as réplicas até atingir a convergência ou

encerrar com erro após tentativas limitadas. Não concluir pelo retorno do módulo de deploy isoladamente.

  • Tratar check mode com honestidade: tasks de inspeção podem usar

check_mode: false; tasks que alteram estado devem ser puladas ou suportar a simulação. O preflight precisa permanecer útil sem implantar stacks.

  • Usar FQCN (ansible.builtin.copy, não copy) e módulos declarativos,

evitando shell/command sempre que existir módulo idempotente equivalente.

  • Dar nomes acionáveis a tasks e handlers (name: descreve o efeito, não o

módulo); notificar handler somente quando a task realmente mudar estado.

  • Separar defaults/main.yml (configurável pelo consumidor da role),

vars/main.yml (interno, não deve ser sobrescrito) e secrets (Vault ou lookup externo) em arquivos distintos.

  • Fixar collections em requirements.yml com versão e validar a matriz de

compatibilidade com o ansible-core instalado antes de atualizar.

  • Usar changed_when/failed_when apenas para representar a semântica real

do comando; nunca para silenciar uma falha genuína ou fingir idempotência em um shell/command que sempre relata mudança.

  • Restringir privilégio (become só na task que precisa) e usar `no_log:

true` em qualquer task que manipule segredo, mesmo que o valor pareça inofensivo no log.

  • Não depender da ordem acidental dos hosts ou da execução paralela

padrão quando a task tiver efeito colateral entre hosts (ex.: um serviço que só um host por vez pode reiniciar); usar serial e throttle explicitamente nesses casos.

Antipadrões

  • shell/command sem creates, removes ou changed_when explícito: a

task relata changed toda vez, mesmo quando o estado final é idêntico; isso quebra a leitura de "o que realmente mudou" em uma execução e mascara uma automação não idempotente.

  • Handler notificado incondicionalmente (fora de uma task que só dispara

notify quando changed): reinicia serviço a cada execução, inclusive quando nada mudou, criando indisponibilidade desnecessária.

  • Variável de ambiente (produção/staging) só resolvida por group_vars

genérico sem revisar a precedência real: um -e na linha de comando ou uma host_vars mais específica pode silenciosamente sobrescrever o valor esperado.

  • Vault decriptado e commitado por engano, ou segredo interpolado em um

debug:/log sem no_log: o segredo vaza pelo histórico do Git ou pelo output da execução, mesmo que o arquivo fonte esteja corretamente criptografado.

Validação

  • ansible-playbook --syntax-check, ansible-lint e execução em `--check

--diff` (check mode) antes de qualquer aplicação real, confirmando que o diff não expõe segredo.

  • Duas execuções consecutivas no mesmo alvo: a segunda não deve relatar

nenhuma task como changed; essa é a prova operacional de idempotência, não uma inspeção visual do código.

  • Testes de handlers (o serviço realmente reinicia quando deveria), de

templates (renderização correta por ambiente) e de falha parcial (any_errors_fatal, max_fail_percentage se comportam como esperado quando um host falha no meio do batch).

  • Confirmação explícita do inventory e do --limit usados antes de qualquer

mutação remota; nunca aceitar "rodar em todos os hosts" como default silencioso.

  • Não declarar uma role "idempotente" ou "segura" sem as duas execuções

consecutivas e o check mode acima; a leitura do playbook não substitui a execução real contra um ambiente descartável.

Skills relacionadas

  • $specsfy-specialist-deploy coordena a automação completa do servidor; esta

skill cuida das roles e do playbook Ansible.

  • $specsfy-specialist-versioning mantém SEMVER alinhado à imagem e aos

manifestos transportados pela automação.

  • $specsfy-specialist-docker-swarm quando o host provisionado por Ansible

entra em um cluster Swarm; Ansible prepara o node, Swarm orquestra os serviços dentro dele.

  • $specsfy-specialist-delivery-engineering quando a execução do playbook é

uma etapa de pipeline com promoção entre ambientes.

  • $specsfy-specialist-application-security para revisão de gestão de

segredo, rotação de credencial e hardening do host provisionado.

  • $specsfy-specialist-debian-server para preparar APT, SSH, sysctl, systemd,

firewall e Docker Engine antes da automação da aplicação.

Leia references/standards.md para estrutura de roles, precedência de variáveis, idempotência, segurança operacional e comandos de teste, com fontes oficiais da documentação do Ansible.

aus demselben Repository

Weitere Skills

Alle Skills
promovaweb
Community

specsfy-specialist-react

Projetar, implementar e revisar interfaces React com composição, estado, efeitos, concorrência, acessibilidade, performance e testes. Use quando a tarefa envolve componentes React, hooks, context, forms ou renderização cliente; use também para decidir ownership de estado entre componente, context e biblioteca externa; não use para fronteiras server/client, cache ou routing de framework — aí use a skill Next.js; para a galeria de componentes visuais prontos, use react-ui-components.

Installationen
2
GitHub Stars
86
Aktualisiert
14. Okt.
promovaweb
Community

specsfy-specialist-ui-design

Projetar e revisar interfaces visuais de sistemas, dashboards e aplicações com hierarquia, layout, tokens, componentes, densidade, estados e responsividade. Use para telas, dashboards, design systems, layouts, tabelas, formulários e navegação; combine com UX e acessibilidade quando houver fluxo ou interação.

Installationen
2
GitHub Stars
86
Aktualisiert
14. Okt.
promovaweb
Community

specsfy-specialist-domain-modeling

Descobrir e refinar linguagem ubíqua de domínio, invariantes, eventos, aggregates e bounded contexts a partir de cenários concretos, evitando anemic domain model. Use quando termos, regras ou ownership de dados estiverem ambíguos, dois times usarem a mesma palavra com sentido diferente, ou uma decisão de modelo for necessária; não criar documentação paralela à fonte autorizada; não use para decisão de infraestrutura ou deployment, use $specsfy-specialist-software-architecture para isso.

Installationen
2
GitHub Stars
86
Aktualisiert
14. Okt.
promovaweb
Community

specsfy-specialist-data-modeling

Modelar dados, entidades, relações, ciclos de vida, qualidade e contratos persistentes antes de implementar mudanças.

Installationen
2
GitHub Stars
86
Aktualisiert
14. Okt.