specsfy-specialist-deploy
Orquestrar release e deploy em servidor com SEMVER, Docker Swarm e Ansible. Use para publicação completa ou preparação desse fluxo.
How do I install this agent skill?
npx skills add https://github.com/promovaweb/specsfy --skill specsfy-specialist-deployIs this agent skill safe to install?
- Gen Agent Trust Hubwarn
This skill provides a comprehensive deployment orchestration framework using Ansible and Docker Swarm. It includes capabilities for system-level configuration, privilege escalation, and dynamic script generation which are necessary for deployment tasks but represent significant control over the target infrastructure. The skill follows security best practices for secret management and SSH key handling.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Deploy
Quando usar
- Acionar quando a pessoa pedir release ou deploy de uma aplicação em servidor.
- Acionar para preparar um servidor que receberá stacks Docker Swarm via Ansible.
- Acionar quando a pessoa pedir para cadastrar, adicionar, substituir ou conferir um servidor do ambiente.
- Não executar push, provisionamento ou mudança remota sem alvo e autorização explícitos.
Fluxo
Apresente o plano, informe o progresso por etapa e encerre com arquivos alterados, validações e pendências. Para texto público, siga o Contrato Editorial Compartilhado aplicável ao projeto consumidor.
-
Confirmar a raiz do sistema do usuário e acionar
$specsfy-specialist-versioningpara ler ou prepararSEMVER. -
Inspecionar
Dockerfile, Compose, stack eansible/existentes. Comparar PHP, extensões, dependências, assets, entrypoint, usuário interno, portas, healthcheck e comando do Octane com a aplicação atual. Preservar trechos personalizados e apresentar o diff antes de substituir um arquivo sem marcações gerenciadas. -
Executar o gerador somente na primeira preparação, quando todos os destinos estiverem ausentes:
node scripts/scaffold.mjs --project <raiz> --image <registry>/<aplicacao>O padrão inclui Cloudflare Tunnel na stack. Se a pessoa pedir outro proxy, gerar sem
cloudflaredcom--proxy externale configurar a alternativa solicitada em etapa própria. -
Acionar
$specsfy-specialist-debian-serverpara levantar as máquinas uma por rodada. Registrar hostname, endereço, porta SSH, usuário de conexão e papelmanagerouworkeremansible/inventory.yml, preservando os hosts já cadastrados. Quando chegar uma máquina nova, adicionar somente esse host. -
Testar todos os hosts declarados antes de qualquer alteração remota. A skill executa o utilitário, mas também mostra a forma curta para uso no Herdr:
./deploy check-hosts -
Localizar apenas chaves públicas
~/.ssh/*.pubna máquina controladora e adicioná-las aoauthorized_keysdo usuáriodeploy. Nunca ler, copiar ou transmitir uma chave privada. Manter acessos remotos já cadastrados. -
Perguntar quais senhas, tokens, chaves e keys a aplicação consome e registrar os nomes em
ansible/vault-fields.txt. Não pedir os valores na conversa. O utilitário solicita cada valor com entrada oculta e grava o YAML criptografado:./deploy secretsA repetição mantém os campos existentes e pergunta somente os ausentes.
No padrão Cloudflare Tunnel, incluir
vault_cloudflare_tunnel_token. O serviço lê o token pelo arquivo/run/secrets/cloudflare_tunnel_token. -
Gerar a referência da imagem com
docker-tag. Recusar qualquer tag Docker diferente do valor presente emSEMVER. -
Acionar
$specsfy-specialist-debian-servere$specsfy-specialist-dockerpara definir o estado do host e do Docker Engine. -
Acionar
$specsfy-specialist-ansiblepara criar ou revisar roles idempotentes que criam o usuáriodeploy, instalam Docker Engine, configuram daemon, firewall, permissões e diretórios da aplicação. -
Acionar
$specsfy-specialist-docker-swarmpara definir managers, workers, redes e stacks. O playbook executadocker swarm initsomente quando o manager ainda não participa de um swarm e usa tokens protegidos para joins. -
Validar Ansible em syntax check, lint, check mode e duas execuções num alvo descartável. Validar a stack com
docker stack config. -
Com autorização para o alvo informado, usar
./deploy run --non-interactivequando o agente executar o deploy. A senha vem de uma fonte externa já configurada. Na ausência dessa fonte, orientar a pessoa a executar./deploy configure-vaultno próprio terminal; não pedir, ler ou imprimir a senha na conversa. Preservar./deploy runcomo caminho manual. Aplicar o playbook, publicar a imagem versionada e executardocker stack deploypelo manager. -
Conferir réplicas, healthchecks, logs, versão e digest. Guardar o comando de rollback para a versão anterior.
Padrões
-
Ler references/vault.md antes de configurar a senha, migrar scripts existentes ou executar pelo agente. A fonte explícita tem precedência sobre ambiente e
ansible.cfg; o cadastro local é a alternativa quando nenhuma fonte nativa existe. Falha de uma fonte encerra a execução. -
Não executar
configure-vaultpela IA para preencher a senha. Esse comando pertence à preparação humana, em terminal com entrada oculta. -
Atualizar projetos existentes por diff, preservando personalizações. O scaffold continua recusando sobrescrita e a atualização da skill não migra automaticamente
./deployouansible/. -
SEMVERna raiz do sistema do usuário governa imagem, manifesto, tag Git e release. -
Gerar
compose.yamlpara desenvolvimento estack.yamlpara produção. Toda produção usa a stack pelo Docker Swarm; não use Compose como runtime de produção. -
Em Laravel, exigir
laravel/octanee Open Swoole. A imagem instalaopenswoole; Compose e stack executam Octane com--server=swoole. -
Sugerir Cloudflare Tunnel como entrada pública padrão. Executar
cloudflaredcomo serviço da stack, ligado à mesma rede overlay da aplicação e sem porta pública no serviço Laravel. O hostname do túnel aponta parahttp://app:8000. -
Trocar o padrão somente quando a pessoa pedir outro proxy. Nesse caso, não gerar o serviço
cloudflarednem o secret do token. -
Ansible configura o servidor e o estado do Swarm. Não deixe uma sequência manual de comandos SSH como procedimento principal.
-
Criar o usuário de serviço
deploy, adicionar somente esse usuário ao grupodockere atribuir a ele os diretórios da aplicação. O grupo concede acesso administrativo amplo ao host e não deve incluir contas sem essa função. -
Manter
ansible/inventory.ymlcomo mapa dos servidores conhecidos. Uma inclusão preserva os hosts atuais, testa a nova conexão e só então configura o node e seu papel no Swarm. -
Mostrar
./deploy check-hosts,./deploy secrets,./deploy sync-keysou./deploy runquando a pessoa precisar copiar uma ação para outro painel do Herdr. A skill executa esses utilitários sem exigir memorização. -
Em nova chamada, ler novamente a aplicação e reconciliar apenas o que mudou. O gerador serve ao primeiro bootstrap e não deve sobrescrever arquivos existentes para simular atualização.
-
Use módulos idempotentes e
community.docker; comandos necessários para iniciar ou integrar o swarm precisam de condições baseadas no estado atual. -
Mantenha managers em número ímpar e restrinja as portas do Swarm aos nodes autorizados.
-
Publique uma imagem uma vez e promova o mesmo digest entre ambientes.
-
Senhas, tokens e chaves entram em um Ansible Vault criado por prompt seguro. O Ansible transforma os valores descriptografados em Docker Secrets com
no_log: true; a stack guarda apenas nomes e mounts externos.
Antipadrões
- Usar
latestou outra tag que não reproduzaSEMVER. - Executar
docker swarm initem toda rodada do playbook. - Expor token de join em log, variável aberta ou arquivo commitado.
- Guardar senha, token ou chave no
stack.yaml, em variável aberta ou na imagem. - Passar o token do Cloudflare Tunnel por argumento, variável aberta ou arquivo versionado.
- Conceder
sudoirrestrito ao usuáriodeploysem necessidade confirmada. - Fazer build no servidor ou recompilar uma imagem para cada ambiente.
- Considerar o deploy concluído apenas porque o comando retornou código zero.
Validação
-
Comprovar o prompt manual, arquivo externo, script de cofre e configuração nativa em um alvo descartável. Sem senha válida, a execução deve parar antes de conectar aos hosts. Conferir permissões
700e600, confirmação de substituição e ausência de valores secretos na saída do configurador. -
Executar
current,docker-tageverify-docker-tagpela skill de versionamento. -
Confirmar que
deployexiste, pertence ao grupodocker, acessa o daemon e é owner dos diretórios da aplicação. -
Confirmar Docker Engine ativo, manager alcançável e swarm em estado
active. -
Executar o playbook duas vezes; a segunda rodada deve terminar sem mudanças.
-
Comparar a imagem de cada serviço com
SEMVERe com o digest publicado. -
Observar a convergência e ensaiar rollback em ambiente compatível.
Skills relacionadas
$specsfy-specialist-versioninggoverna a versão do sistema do usuário.$specsfy-specialist-debian-serverdefine o estado base do host.$specsfy-specialist-dockerprepara e publica a imagem.$specsfy-specialist-ansibleautomatiza o servidor e o cluster.$specsfy-specialist-docker-swarmgoverna serviços, rollout e rollback.$specsfy-specialist-delivery-engineeringgoverna pipeline e promoção entre ambientes quando esses componentes fizerem parte da entrega.
Leia references/standards.md antes de criar ou alterar o playbook de provisionamento e deploy.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/promovaweb/specsfy/specsfy-specialist-deploy">View specsfy-specialist-deploy on skillZs</a>