Instalação
cd /tmp
curl -L -o scully-1.9.3.tar.gz https://raw.githubusercontent.com/T466/Scully/main/scully-1.9.3.tar.gz
tar -xzvf /tmp/scully-1.9.3.tar.gz
cd scully-1.9.3 ; ./install.sh
Surgirá
Instalando Scully em /opt/scully ...
Scully instalado com sucesso em /opt/scully
Execute com: scully -i /opt/scully/inventories/inventory all -m ping
scully -v
scully -h
scully/
├── scully.sh # Script principal da CLI
├── inventory # Inventário default (estilo INI)
├── modules/ # Diretório dos módulos
│ ├── ping.sh
│ ├── file.sh
│ └── ...
scully <alvo|grupo|all> -m <modulo> [parâmetros]
Exemplo:
scully all -m ping
scully grupo1 -m service nginx restart
scully 192.168.0.10 -m shell "df -h"
Com inventário customizado:
scully -i /opt/scully/inventories/prod grupo1 -m reboot
[grupo1]
192.168.10.11
192.168.10.12
[grupo2]
app-server
db-server
Salve como: /opt/scully/inventory ou use -i para alternar.
Módulo
Descrição
ping Testa conectividade SSH
file Cria arquivos ou diretórios
user Cria usuários locais
group Cria/remover grupos
cron Adiciona/remover tarefas no crontab
service Gerencia serviços (start/stop/etc)
package Instala/remove pacotes (apt/yum)
shell Executa comandos com pipes, &&, redir
replace Substitui sentenças em arquivos
firewall Abre ou fecha portas
reboot Reinicia o servidor remoto
hostname Define o nome do host
facts Coleta informações básicas do sistema
copy Copia arquivos via scp
# Copiar um script para todos os hosts
scully all -m copy ./deploy.sh /tmp/deploy.sh
# Alterar o hostname de um grupo
scully grupo1 -m hostname app01
# Abrir a porta 443 em servidores web
scully web -m firewall open 443/tcp
# Criar diretório com permissão
scully grupo2 -m file /opt/data directory 755
Use chaves SSH com acesso sem senha
Utilize grupos nomeados no inventário
Teste em ambiente DEV antes de aplicar em produção
Documente os módulos personalizados
Empacotamento
Scully pode ser empacotada como .tar.gz, .rpm ou usada diretamente de um repositório Git.
Envie sugestões, módulos ou melhorias via pull request no GitHub:
github.com/T466/Scully