📚 Referência Completa de Comandos CLI¶
Visão Geral¶
O Sloth Runner oferece uma interface de linha de comando (CLI) completa e poderosa para gerenciar workflows, agentes, módulos, hooks, eventos e muito mais. Esta documentação cobre todos os comandos disponíveis com exemplos práticos.
🎯 Comandos Principais¶
run - Executar Workflows¶
Executa um workflow Sloth a partir de um arquivo.
# Sintaxe básica
sloth-runner run <workflow-name> --file <arquivo.sloth> [opções]
# Exemplos
sloth-runner run deploy --file deploy.sloth
sloth-runner run deploy --file deploy.sloth --yes # Modo não-interativo
sloth-runner run deploy --file deploy.sloth --group production # Executa grupo específico
sloth-runner run deploy --file deploy.sloth --delegate-to agent1 # Delega para agente
sloth-runner run deploy --file deploy.sloth --delegate-to agent1 --delegate-to agent2 # Múltiplos agentes
sloth-runner run deploy --file deploy.sloth --values vars.yaml # Passa variáveis
sloth-runner run deploy --file deploy.sloth --var "env=production" # Variável inline
Opções: - --file, -f - Caminho do arquivo Sloth - --yes, -y - Modo não-interativo (não pede confirmação) - --group, -g - Executa apenas um grupo específico - --delegate-to - Delega execução para agente(s) remoto(s) - --values - Arquivo YAML com variáveis - --var - Define variável inline (pode usar múltiplas vezes) - --verbose, -v - Modo verboso
🤖 Gerenciamento de Agentes¶
agent list - Listar Agentes¶
Lista todos os agentes registrados no servidor master.
# Sintaxe
sloth-runner agent list [opções]
# Exemplos
sloth-runner agent list # Lista todos os agentes
sloth-runner agent list --format json # Saída em JSON
sloth-runner agent list --format yaml # Saída em YAML
sloth-runner agent list --status active # Apenas agentes ativos
Opções: - --format - Formato de saída: table (padrão), json, yaml - --status - Filtrar por status: active, inactive, all
agent get - Detalhes do Agente¶
Obtém informações detalhadas sobre um agente específico.
# Sintaxe
sloth-runner agent get <agent-name> [opções]
# Exemplos
sloth-runner agent get web-server-01
sloth-runner agent get web-server-01 --format json
sloth-runner agent get web-server-01 --show-metrics # Inclui métricas
Opções: - --format - Formato de saída: table, json, yaml - --show-metrics - Mostra métricas do agente
agent install - Instalar Agente Remoto¶
Instala o agente Sloth Runner em um servidor remoto via SSH.
# Sintaxe
sloth-runner agent install <agent-name> --ssh-host <host> --ssh-user <user> [opções]
# Exemplos
sloth-runner agent install web-01 --ssh-host 192.168.1.100 --ssh-user root
sloth-runner agent install web-01 --ssh-host 192.168.1.100 --ssh-user root --ssh-port 2222
sloth-runner agent install web-01 \
--ssh-host 192.168.1.100 \
--ssh-user root \
--master 192.168.1.1:50053 \
--bind-address 0.0.0.0 \
--port 50060 \
--report-address 192.168.1.100:50060
Opções: - --ssh-host - Host SSH do servidor remoto (obrigatório) - --ssh-user - Usuário SSH (obrigatório) - --ssh-port - Porta SSH (padrão: 22) - --ssh-key - Caminho da chave SSH privada - --master - Endereço do servidor master (padrão: localhost:50053) - --bind-address - Endereço de bind do agente (padrão: 0.0.0.0) - --port - Porta do agente (padrão: 50060) - --report-address - Endereço que o agente reporta ao master
agent update - Atualizar Agente¶
Atualiza o binário do agente para a versão mais recente.
# Sintaxe
sloth-runner agent update <agent-name> [opções]
# Exemplos
sloth-runner agent update web-01
sloth-runner agent update web-01 --version v1.2.3
sloth-runner agent update web-01 --restart # Reinicia após atualizar
Opções: - --version - Versão específica (padrão: latest) - --restart - Reinicia o agente após atualização - --force - Força atualização mesmo se a versão for a mesma
agent modules - Módulos do Agente¶
Lista ou verifica módulos disponíveis em um agente.
# Sintaxe
sloth-runner agent modules <agent-name> [opções]
# Exemplos
sloth-runner agent modules web-01 # Lista todos os módulos
sloth-runner agent modules web-01 --check pkg # Verifica se módulo 'pkg' está disponível
sloth-runner agent modules web-01 --check docker # Verifica se Docker está instalado
sloth-runner agent modules web-01 --format json # Saída em JSON
Opções: - --check - Verifica módulo específico - --format - Formato de saída: table, json, yaml
agent start - Iniciar Agente¶
Inicia o serviço do agente localmente.
# Sintaxe
sloth-runner agent start [opções]
# Exemplos
sloth-runner agent start # Inicia com configurações padrão
sloth-runner agent start --master 192.168.1.1:50053 # Conecta a master específico
sloth-runner agent start --port 50060 # Usa porta específica
sloth-runner agent start --name my-agent # Define nome do agente
sloth-runner agent start --bind 0.0.0.0 # Bind em todas as interfaces
sloth-runner agent start --foreground # Executa em primeiro plano
Opções: - --master - Endereço do servidor master (padrão: localhost:50053) - --port - Porta do agente (padrão: 50060) - --name - Nome do agente (padrão: hostname) - --bind - Endereço de bind (padrão: 0.0.0.0) - --report-address - Endereço que o agente reporta - --foreground - Executa em primeiro plano (não daemon)
agent stop - Parar Agente¶
Para o serviço do agente.
# Sintaxe
sloth-runner agent stop [opções]
# Exemplos
sloth-runner agent stop # Para agente local
sloth-runner agent stop --name web-01 # Para agente específico
agent restart - Reiniciar Agente¶
Reinicia o serviço do agente.
# Sintaxe
sloth-runner agent restart [agent-name]
# Exemplos
sloth-runner agent restart # Reinicia agente local
sloth-runner agent restart web-01 # Reinicia agente remoto
agent metrics - Métricas do Agente¶
Visualiza métricas de performance e recursos do agente.
# Sintaxe
sloth-runner agent metrics <agent-name> [opções]
# Exemplos
sloth-runner agent metrics web-01
sloth-runner agent metrics web-01 --format json
sloth-runner agent metrics web-01 --watch # Atualiza continuamente
sloth-runner agent metrics web-01 --interval 5 # Intervalo de 5 segundos
Opções: - --format - Formato: table, json, yaml, prometheus - --watch - Atualiza continuamente - --interval - Intervalo de atualização em segundos (padrão: 2)
agent metrics grafana - Dashboard Grafana¶
Gera e exibe dashboard do Grafana para um agente.
# Sintaxe
sloth-runner agent metrics grafana <agent-name> [opções]
# Exemplos
sloth-runner agent metrics grafana web-01
sloth-runner agent metrics grafana web-01 --export dashboard.json
Opções: - --export - Exporta dashboard para arquivo JSON
📦 Gerenciamento de Sloths (Workflows Salvos)¶
sloth list - Listar Sloths¶
Lista todos os workflows salvos no repositório local.
# Sintaxe
sloth-runner sloth list [opções]
# Exemplos
sloth-runner sloth list # Lista todos
sloth-runner sloth list --active # Apenas sloths ativos
sloth-runner sloth list --inactive # Apenas sloths inativos
sloth-runner sloth list --format json # Saída em JSON
Opções: - --active - Apenas sloths ativos - --inactive - Apenas sloths inativos - --format - Formato: table, json, yaml
sloth add - Adicionar Sloth¶
Adiciona um novo workflow ao repositório.
# Sintaxe
sloth-runner sloth add <name> --file <caminho> [opções]
# Exemplos
sloth-runner sloth add deploy --file deploy.sloth
sloth-runner sloth add deploy --file deploy.sloth --description "Deploy production"
sloth-runner sloth add deploy --file deploy.sloth --tags "prod,deploy"
Opções: - --file - Caminho do arquivo Sloth (obrigatório) - --description - Descrição do sloth - --tags - Tags separadas por vírgula
sloth get - Obter Sloth¶
Exibe detalhes de um sloth específico.
# Sintaxe
sloth-runner sloth get <name> [opções]
# Exemplos
sloth-runner sloth get deploy
sloth-runner sloth get deploy --format json
sloth-runner sloth get deploy --show-content # Mostra conteúdo do workflow
Opções: - --format - Formato: table, json, yaml - --show-content - Mostra conteúdo completo do workflow
sloth update - Atualizar Sloth¶
Atualiza um sloth existente.
# Sintaxe
sloth-runner sloth update <name> [opções]
# Exemplos
sloth-runner sloth update deploy --file deploy-v2.sloth
sloth-runner sloth update deploy --description "New description"
sloth-runner sloth update deploy --tags "prod,deploy,updated"
Opções: - --file - Novo arquivo Sloth - --description - Nova descrição - --tags - Novas tags
sloth remove - Remover Sloth¶
Remove um sloth do repositório.
# Sintaxe
sloth-runner sloth remove <name>
# Exemplos
sloth-runner sloth remove deploy
sloth-runner sloth remove deploy --force # Remove sem confirmação
Opções: - --force - Remove sem pedir confirmação
sloth activate - Ativar Sloth¶
Ativa um sloth desativado.
sloth deactivate - Desativar Sloth¶
Desativa um sloth (não remove, apenas marca como inativo).
🎣 Gerenciamento de Hooks¶
hook list - Listar Hooks¶
Lista todos os hooks registrados.
# Sintaxe
sloth-runner hook list [opções]
# Exemplos
sloth-runner hook list
sloth-runner hook list --format json
sloth-runner hook list --event workflow.started # Filtra por evento
Opções: - --format - Formato: table, json, yaml - --event - Filtra por tipo de evento
hook add - Adicionar Hook¶
Adiciona um novo hook.
# Sintaxe
sloth-runner hook add <name> --event <evento> --script <caminho> [opções]
# Exemplos
sloth-runner hook add notify-slack --event workflow.completed --script notify.sh
sloth-runner hook add backup --event task.completed --script backup.lua
sloth-runner hook add validate --event workflow.started --script validate.lua --priority 10
Opções: - --event - Tipo de evento (obrigatório) - --script - Caminho do script (obrigatório) - --priority - Prioridade de execução (padrão: 0) - --enabled - Hook habilitado (padrão: true)
Eventos disponíveis: - workflow.started - workflow.completed - workflow.failed - task.started - task.completed - task.failed - agent.connected - agent.disconnected
hook remove - Remover Hook¶
Remove um hook.
# Sintaxe
sloth-runner hook remove <name>
# Exemplos
sloth-runner hook remove notify-slack
sloth-runner hook remove notify-slack --force
hook enable - Habilitar Hook¶
Habilita um hook desabilitado.
hook disable - Desabilitar Hook¶
Desabilita um hook.
hook test - Testar Hook¶
Testa a execução de um hook.
# Sintaxe
sloth-runner hook test <name> [opções]
# Exemplos
sloth-runner hook test notify-slack
sloth-runner hook test notify-slack --payload '{"message": "test"}'
Opções: - --payload - JSON com dados de teste
📡 Gerenciamento de Eventos¶
events list - Listar Eventos¶
Lista eventos recentes do sistema.
# Sintaxe
sloth-runner events list [opções]
# Exemplos
sloth-runner events list
sloth-runner events list --limit 50 # Últimos 50 eventos
sloth-runner events list --type workflow.started # Filtra por tipo
sloth-runner events list --since 1h # Eventos da última hora
sloth-runner events list --format json
Opções: - --limit - Número máximo de eventos (padrão: 100) - --type - Filtra por tipo de evento - --since - Filtra por tempo (ex: 1h, 30m, 24h) - --format - Formato: table, json, yaml
events watch - Monitorar Eventos¶
Monitora eventos em tempo real.
# Sintaxe
sloth-runner events watch [opções]
# Exemplos
sloth-runner events watch
sloth-runner events watch --type workflow.completed # Apenas eventos de workflow completado
sloth-runner events watch --filter "status=success" # Com filtro
Opções: - --type - Filtra por tipo de evento - --filter - Expressão de filtro
🗄️ Gerenciamento de Database¶
db backup - Backup do Database¶
Cria backup do database SQLite.
# Sintaxe
sloth-runner db backup [opções]
# Exemplos
sloth-runner db backup
sloth-runner db backup --output /backup/sloth-backup.db
sloth-runner db backup --compress # Comprime com gzip
Opções: - --output - Caminho do arquivo de backup - --compress - Comprime o backup
db restore - Restaurar Database¶
Restaura database de um backup.
# Sintaxe
sloth-runner db restore <arquivo-backup> [opções]
# Exemplos
sloth-runner db restore /backup/sloth-backup.db
sloth-runner db restore /backup/sloth-backup.db.gz --decompress
Opções: - --decompress - Descomprime backup gzip
db vacuum - Otimizar Database¶
Otimiza e compacta o database SQLite.
db stats - Estatísticas do Database¶
Mostra estatísticas do database.
# Sintaxe
sloth-runner db stats [opções]
# Exemplos
sloth-runner db stats
sloth-runner db stats --format json
Opções: - --format - Formato: table, json, yaml
🌐 SSH Management¶
ssh list - Listar Conexões SSH¶
Lista conexões SSH salvas.
# Sintaxe
sloth-runner ssh list [opções]
# Exemplos
sloth-runner ssh list
sloth-runner ssh list --format json
Opções: - --format - Formato: table, json, yaml
ssh add - Adicionar Conexão SSH¶
Adiciona uma nova conexão SSH.
# Sintaxe
sloth-runner ssh add <name> --host <host> --user <user> [opções]
# Exemplos
sloth-runner ssh add web-server --host 192.168.1.100 --user ubuntu
sloth-runner ssh add web-server --host 192.168.1.100 --user ubuntu --port 2222
sloth-runner ssh add web-server --host 192.168.1.100 --user ubuntu --key ~/.ssh/id_rsa
Opções: - --host - Host SSH (obrigatório) - --user - Usuário SSH (obrigatório) - --port - Porta SSH (padrão: 22) - --key - Caminho da chave SSH privada
ssh remove - Remover Conexão SSH¶
Remove uma conexão SSH salva.
ssh test - Testar Conexão SSH¶
Testa uma conexão SSH.
📋 Módulos¶
modules list - Listar Módulos¶
Lista todos os módulos disponíveis.
# Sintaxe
sloth-runner modules list [opções]
# Exemplos
sloth-runner modules list
sloth-runner modules list --format json
sloth-runner modules list --category cloud # Filtra por categoria
Opções: - --format - Formato: table, json, yaml - --category - Filtra por categoria
modules info - Informações do Módulo¶
Mostra informações detalhadas sobre um módulo.
# Sintaxe
sloth-runner modules info <module-name>
# Exemplos
sloth-runner modules info pkg
sloth-runner modules info docker
sloth-runner modules info terraform
🖥️ Servidor e UI¶
server - Iniciar Servidor Master¶
Inicia o servidor master (gRPC).
# Sintaxe
sloth-runner server [opções]
# Exemplos
sloth-runner server # Inicia na porta padrão (50053)
sloth-runner server --port 50053 # Define porta específica
sloth-runner server --bind 0.0.0.0 # Bind em todas as interfaces
sloth-runner server --tls-cert cert.pem --tls-key key.pem # Com TLS
Opções: - --port - Porta do servidor (padrão: 50053) - --bind - Endereço de bind (padrão: 0.0.0.0) - --tls-cert - Certificado TLS - --tls-key - Chave privada TLS
ui - Iniciar Web UI¶
Inicia a interface web.
# Sintaxe
sloth-runner ui [opções]
# Exemplos
sloth-runner ui # Inicia na porta padrão (8080)
sloth-runner ui --port 8080 # Define porta específica
sloth-runner ui --bind 0.0.0.0 # Bind em todas as interfaces
Opções: - --port - Porta da web UI (padrão: 8080) - --bind - Endereço de bind (padrão: 0.0.0.0)
terminal - Terminal Interativo¶
Abre terminal interativo para um agente remoto.
🔧 Utilitários¶
version - Versão¶
Mostra a versão do Sloth Runner.
completion - Auto-completar¶
Gera scripts de auto-completar para o shell.
# Sintaxe
sloth-runner completion <shell>
# Exemplos
sloth-runner completion bash > /etc/bash_completion.d/sloth-runner
sloth-runner completion zsh > ~/.zsh/completion/_sloth-runner
sloth-runner completion fish > ~/.config/fish/completions/sloth-runner.fish
Shells suportados: bash, zsh, fish, powershell
doctor - Diagnóstico¶
Executa diagnóstico do sistema e configuração.
# Sintaxe
sloth-runner doctor [opções]
# Exemplos
sloth-runner doctor
sloth-runner doctor --format json
sloth-runner doctor --verbose # Saída detalhada
Opções: - --format - Formato: text, json - --verbose - Saída detalhada
🔐 Variáveis de Ambiente¶
O Sloth Runner usa as seguintes variáveis de ambiente:
# Endereço do servidor master
export SLOTH_RUNNER_MASTER_ADDR="192.168.1.1:50053"
# Porta do agente
export SLOTH_RUNNER_AGENT_PORT="50060"
# Porta da Web UI
export SLOTH_RUNNER_UI_PORT="8080"
# Caminho do database
export SLOTH_RUNNER_DB_PATH="~/.sloth-runner/sloth.db"
# Nível de log
export SLOTH_RUNNER_LOG_LEVEL="info" # debug, info, warn, error
# Habilitar modo debug
export SLOTH_RUNNER_DEBUG="true"
📊 Exemplos de Uso Comum¶
1. Deploy em Produção com Delegação¶
sloth-runner run production-deploy \
--file deployments/prod.sloth \
--delegate-to web-01 \
--delegate-to web-02 \
--values prod-vars.yaml \
--yes
2. Monitorar Métricas de Todos os Agentes¶
# Em um terminal
sloth-runner agent metrics web-01 --watch
# Em outro terminal
sloth-runner agent metrics web-02 --watch
3. Backup Automatizado¶
# Criar backup comprimido com timestamp
sloth-runner db backup \
--output /backup/sloth-$(date +%Y%m%d-%H%M%S).db \
--compress
4. Workflow com Hook de Notificação¶
# Adicionar hook de notificação
sloth-runner hook add slack-notify \
--event workflow.completed \
--script /scripts/notify-slack.lua
# Executar workflow (hook será disparado automaticamente)
sloth-runner run deploy --file deploy.sloth --yes
5. Instalação de Agente em Múltiplos Servidores¶
# Loop para instalar em múltiplos hosts
for host in 192.168.1.{10..20}; do
sloth-runner agent install "agent-$host" \
--ssh-host "$host" \
--ssh-user ubuntu \
--master 192.168.1.1:50053
done
🎓 Próximos Passos¶
- 📖 Guia de Módulos - Documentação completa de todos os módulos
- 🎨 Web UI - Guia completo da interface web
- 🎯 Exemplos Avançados - Exemplos práticos de workflows
- 🏗️ Arquitetura - Arquitetura do sistema
💡 Dicas e Truques¶
Alias Úteis¶
Adicione ao seu .bashrc ou .zshrc:
alias sr='sloth-runner'
alias sra='sloth-runner agent'
alias srr='sloth-runner run'
alias srl='sloth-runner sloth list'
alias srui='sloth-runner ui --port 8080'
Auto-completar¶
# Bash
sloth-runner completion bash > /etc/bash_completion.d/sloth-runner
source /etc/bash_completion.d/sloth-runner
# Zsh
sloth-runner completion zsh > ~/.zsh/completion/_sloth-runner
Modo Debug¶
export SLOTH_RUNNER_DEBUG=true
export SLOTH_RUNNER_LOG_LEVEL=debug
sloth-runner run deploy --file deploy.sloth --verbose
Última atualização: 2025-10-07