Estrutura recomendada para a página “Desenvolvimento” do Mulder:
1. Estrutura do Projeto
mulder/
├── configure-credentials.sh # Script auxiliar para configurar credenciais do vSphere
├── pyvenv.cfg # Configuração do ambiente virtual Python
├── bin/ # Scripts e executáveis do ambiente virtual
├── include/ # Arquivos de cabeçalho do Python (venv)
├── lib/ # Bibliotecas do ambiente virtual Python
│ └── lib64 -> lib # Link simbólico para compatibilidade
├── playbooks/ # Diretório dos playbooks mulder
│ ├── ansible.cfg # Arquivo de configuração do ansible
│ └── snapshot.yml # Playbook para criação de snapshot no ESXi
├── secrets/ # Diretório contendo credenciais seguras
│ └── secrets.yml # Arquivo com variáveis sensíveis (ip, usuário, senha etc.)
2. 🧭 Filosofia do Projeto Mulder
Desenvolvido com foco em Ansible + CLI moderna
Compatível com ambientes virtualizados, legados e híbridos
Sem dependência de agentes, apenas Python + Ansible + módulos limpos
Estrutura clara, modular e reutilizável
Foco em provisionamento, controle e snapshots com simplicidade e agilidade
3. 🛠 Como contribuir com comandos (playbooks)
bash
CopiarEditar
cd playbooks/
cp template.yml snapshot-restore.yml
Cada playbook deve seguir este padrão:
Receber variáveis via -e (como vm_name, snap_name)
Validar parâmetros obrigatórios (fail com when)
Saídas padronizadas com debug, msg, name: claros
4. 🧪 Como testar localmente
mulder snapshot -e vm_name=TEST01 -e snap_name="lab_snap"
mulder restore -e vm_name=TEST01 -e snap_name="lab_snap"
Opcionalmente, crie aliases para encurtar:
alias msnap='mulder snapshot'
alias mrest='mulder restore'
5. ✨ Diretrizes de estilo para playbooks
Use nomes simples: snapshot.yml, restore-snapshot.yml
Documente no topo com comentários YAML
# snapshot.yml - Cria snapshot de uma VM ESXi
Valide parâmetros essenciais (ex: vm_name, snap_name)
Use block: e rescue: para tratativas seguras
Evite sobrecarga de lógica em Jinja ou shell dentro dos YAMLs
6. 🧾 Roadmap
Versão Status Funcionalidades previstas
1.8.9 ✅ Lançado CLI básica (snapshot, restore, --help, --version)
1.9.0 🔄 Em dev Listagem de snapshots, templates de VMs, catálogo de ações
2.0.0 ⏳ Planejado Gerenciamento de estados (infra-as-code), integração com Scully
7. 🛡️ Testes manuais sugeridos
Comando Resultado Esperado
mulder snapshot -e vm_name=LAB01 -e snap_name=teste123 Snapshot criado com sucesso
mulder restore -e vm_name=LAB01 -e snap_name=teste123 Snapshot restaurado com sucesso
mulder -v Exibe versão atual (1.8.9)
mulder -h Lista comandos disponíveis
8. 📤 Publicação e Distribuição
Versão empacotada como .tar.gz (ex: mulder-1.8.9.tar.gz)
Pode ser usada diretamente via Git ou /usr/local/bin/
Planejamento futuro de empacotamento .rpm e instalação via repositório