raijin-server 0.1.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. raijin_server/__init__.py +1 -1
  2. raijin_server/cli.py +76 -5
  3. raijin_server/healthchecks.py +76 -0
  4. raijin_server/modules/__init__.py +11 -2
  5. raijin_server/modules/apokolips_demo.py +378 -0
  6. raijin_server/modules/bootstrap.py +65 -0
  7. raijin_server/modules/calico.py +93 -22
  8. raijin_server/modules/cert_manager.py +127 -0
  9. raijin_server/modules/full_install.py +54 -19
  10. raijin_server/modules/network.py +96 -2
  11. raijin_server/modules/observability_dashboards.py +233 -0
  12. raijin_server/modules/observability_ingress.py +218 -0
  13. raijin_server/modules/sanitize.py +142 -0
  14. raijin_server/modules/secrets.py +109 -0
  15. raijin_server/modules/ssh_hardening.py +128 -0
  16. raijin_server/modules/traefik.py +1 -1
  17. raijin_server/modules/vpn.py +68 -3
  18. raijin_server/scripts/__init__.py +1 -0
  19. raijin_server/scripts/checklist.sh +60 -0
  20. raijin_server/scripts/install.sh +134 -0
  21. raijin_server/scripts/log_size_metric.sh +31 -0
  22. raijin_server/scripts/pre-deploy-check.sh +183 -0
  23. raijin_server/utils.py +45 -12
  24. raijin_server/validators.py +43 -4
  25. raijin_server-0.2.1.dist-info/METADATA +407 -0
  26. raijin_server-0.2.1.dist-info/RECORD +44 -0
  27. raijin_server-0.1.0.dist-info/METADATA +0 -219
  28. raijin_server-0.1.0.dist-info/RECORD +0 -32
  29. {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/WHEEL +0 -0
  30. {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/entry_points.txt +0 -0
  31. {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/licenses/LICENSE +0 -0
  32. {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/top_level.txt +0 -0
@@ -1,219 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: raijin-server
3
- Version: 0.1.0
4
- Summary: CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
- Home-page: https://example.com/raijin-server
6
- Author: Equipe Raijin
7
- License: MIT
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3 :: Only
10
- Classifier: Programming Language :: Python :: 3.9
11
- Classifier: License :: OSI Approved :: MIT License
12
- Classifier: Intended Audience :: System Administrators
13
- Classifier: Environment :: Console
14
- Requires-Python: >=3.9
15
- Description-Content-Type: text/markdown
16
- License-File: LICENSE
17
- Requires-Dist: typer>=0.12
18
- Requires-Dist: rich>=13.7
19
- Provides-Extra: yaml
20
- Requires-Dist: pyyaml>=6.0; extra == "yaml"
21
- Provides-Extra: dev
22
- Requires-Dist: pytest>=7.0; extra == "dev"
23
- Requires-Dist: pytest-cov>=4.0; extra == "dev"
24
- Requires-Dist: black>=23.0; extra == "dev"
25
- Requires-Dist: ruff>=0.1; extra == "dev"
26
- Provides-Extra: all
27
- Requires-Dist: pyyaml>=6.0; extra == "all"
28
- Requires-Dist: pytest>=7.0; extra == "all"
29
- Requires-Dist: pytest-cov>=4.0; extra == "all"
30
- Requires-Dist: black>=23.0; extra == "all"
31
- Requires-Dist: ruff>=0.1; extra == "all"
32
- Dynamic: license-file
33
-
34
- # raijin-server
35
-
36
- CLI em Python (Typer) para automatizar setup e hardening de servidores Ubuntu Server em ambientes produtivos. Orquestra rede, firewall, Kubernetes, observabilidade e backups para acelerar a subida de clusters e workloads.
37
-
38
- **✨ Versão Auditada e Resiliente para Produção**
39
-
40
- ## Destaques
41
-
42
- - ✅ **Validações de Pré-requisitos**: OS, espaço em disco, memória, conectividade
43
- - ✅ **Health Checks Automáticos**: Valida serviços após instalação
44
- - ✅ **Retry Inteligente**: Resistente a falhas temporárias de rede
45
- - ✅ **Logging Estruturado**: Logs persistentes para auditoria
46
- - ✅ **Gestão de Dependências**: Garante ordem correta de execução
47
- - ✅ **Configuração via Arquivo**: Automação completa com YAML/JSON
48
- - ✅ **Idempotência**: Re-execução segura sem quebrar o sistema
49
- - ✅ **Modo Dry-run**: Simula execução sem aplicar mudanças
50
-
51
- ## Requisitos
52
-
53
- - Python >= 3.9
54
- - Ubuntu Server 20.04+ (testado em 24.04)
55
- - Permissões root/sudo
56
- - Conectividade com internet
57
- - Mínimo 4GB RAM, 20GB disco livre
58
- - Ferramentas: `curl`, `apt-get`, `systemctl`
59
-
60
- Ferramentas adicionais (instaladas pelos módulos quando necessário):
61
- - `helm` (>=3.8 para OCI)
62
- - `kubectl`, `kubeadm`
63
- - `velero`, `istioctl`
64
-
65
- ## Instalacao
66
-
67
- Sem venv (global):
68
-
69
- ```bash
70
- python -m pip install .
71
- ```
72
-
73
- Com venv (recomendado para desenvolvimento):
74
-
75
- ```bash
76
- python -m venv .venv
77
- source .venv/bin/activate
78
- python -m pip install -e .
79
- ```
80
-
81
- ## Uso rapido
82
-
83
- ### Validar Sistema
84
- ```bash
85
- # Verifica se o sistema atende pré-requisitos
86
- sudo raijin-server validate
87
- ```
88
-
89
- ### Menu Interativo
90
- ```bash
91
- # Menu visual com stautils.py`: Funções utilitárias com retry, timeout e logging.
92
- - `src/raijin_server/validators.py`: Validações de pré-requisitos e dependências.
93
- - `src/raijin_server/healthchecks.py`: Health checks pós-instalação.
94
- - `src/raijin_server/config.py`: Gerenciamento de configuração via arquivo.
95
- - `src/raijin_server/modules/`: Automações por tópico (hardening, network, essentials, firewall, kubernetes, calico, istio, traefik, kong, minio, prometheus, grafana, loki, harness, velero, kafka).
96
- - `scripts/`: Espaço para shells e templates auxiliares.
97
- - `ARCHITECTURE.md`: Visão do desenho técnico.
98
- - `AUDIT.md`: Relatório completo de auditoria e melhorias.
99
- - `SECURITY.md`: Como reportar vulnerabilidades
100
- ### Execução Direta de Módulos
101
- ```bash
102
- # Executar módulo específico
103
- sudo raijin-server kubernetes
104
-
105
- # Dry-run (simula sem aplicar)
106
- sudo raijin-server --dry-run kubernetes
107
-
108
- # Pular validações (não recomendado)
109
- sudo raijin-server --skip-validation kubernetes
110
- ```
111
-
112
- ### Automação via Arquivo de Configuração
113
- ```bash
114
- # Gerar template de configuração
115
- ra✅ Validações de pré-requisitos e health-check por módulo
116
- - ✅ Gestão automática de dependências entre módulos
117
- - ✅ Sistema de logging estruturado e persistente
118
- - ✅ Retry automático e timeouts configuráveis
119
- - ✅ Configuração via arquivo YAML/JSON
120
- - ⏳ Provisionar ingress seguro para Grafana/Prometheus/Alertmanager
121
- - ⏳ Dashboards e alertas opinativos prontos para uso
122
- - ⏳ Suporte a sealed-secrets/external-secrets para credenciais
123
- - ⏳ Testes automatizados (pytest) e linters
124
- - ⏳ Rollback automático em falhas
125
- - ⏳ Modo de instalação mínima vs completa
126
-
127
- ## Documentação Adicional
128
-
129
- - **[AUDIT.md](AUDIT.md)**: Relatório completo de auditoria e melhorias implementadas
130
- - **[ARCHITECTURE.md](ARCHITECTURE.md)**: Arquitetura técnica do ambiente
131
- - **[SECURITY.md](SECURITY.md)**: Políticas de segurança e reporte de vulnerabilidades
132
-
133
- ## Fluxo de Execução Recomendado
134
-
135
- ```bash
136
- # 1. Validar sistema
137
- sudo raijin-server validate
138
-
139
- # 2. Base do sistema
140
- sudo raijin-server essentials
141
- sudo raijin-server hardening
142
- sudo raijin-server network
143
- sudo raijin-server firewall
144
-
145
- # 3. Kubernetes
146
- sudo raijin-server kubernetes
147
- sudo raijin-server calico
148
-
149
- # 4. Ingress (escolha um)
150
- sudo raijin-server traefik
151
- # OU
152
- sudo raijin-server kong
153
-
154
- # 5. Observabilidade
155
- sudo raijin-server prometheus
156
- sudo raijin-server grafana
157
- sudo raijin-server loki
158
-
159
- # 6. Storage e Mensageria (opcional)
160
- sudo raijin-server minio
161
- sudo raijin-server kafka
162
-
163
- # 7. Backup
164
- sudo raijin-server velero
165
-
166
- # 8. Service Mesh (opcional)
167
- sudo raijin-server istio
168
- ```
169
- # Executar com configuração
170
- sudo raijin-server --config production.yaml kubernetes
171
- ```
172
-
173
- ### Comandos Úteis
174
- ```bash
175
- # Versão
176
- raijin-server version
177
-
178
- # Monitorar logs
179
- tail -f /var/log/raijin-server/raijin-server.log
180
- ```
181
-
182
- ## Estrutura
183
-
184
- - `src/raijin_server/cli.py`: CLI principal com Typer, banner e `--dry-run`.
185
- - `src/raijin_server/modules/`: automacoes por topico (hardening, network, essentials, firewall, kubernetes, calico, istio, traefik, kong, minio, prometheus, grafana, loki, harness, velero, kafka).
186
- - `scripts/`: espaco para shells e templates.
187
- - `ARCHITECTURE.md`: visao do desenho atual.
188
- - `SECURITY.md`: como reportar e pensar seguranca.
189
-
190
- ## Modulos disponiveis
191
-
192
- - `hardening`: fail2ban, unattended-upgrades, sysctl.
193
- - `essentials`: pacotes base (curl, git, jq, etc.) e NTP.
194
- - `network`: Netplan com IP fixo e DNS.
195
- - `firewall`: UFW com regras para SSH/HTTP/HTTPS/K8s.
196
- - `kubernetes`: kubeadm init, containerd SystemdCgroup, kubeconfig.
197
- - `calico`: CNI Calico com CIDR custom e policy default-deny.
198
- - `istio`: istioctl install (perfil raijin) e injeção automática.
199
- - `traefik`: IngressController com TLS/ACME.
200
- - `kong`: Ingress/Gateway com Helm.
201
- - `minio`: armazenamento S3 compatível via Helm.
202
- - `prometheus`, `grafana`, `loki`: observabilidade, dashboards e persistencia.
203
- - `harness`: delegate Helm com parametros interativos.
204
- - `velero`: backup/restore com schedule.
205
- - `kafka`: deploy Bitnami via OCI.
206
-
207
- ## Roadmap basico
208
-
209
- - Adicionar validacoes de pre-requisitos e health-check por modulo.
210
- - Provisionar ingress seguro para Grafana/Prometheus/Alertmanager.
211
- - Dashboards e alertas opinativos prontos para uso.
212
- - Suporte a sealed-secrets/external-secrets para credenciais.
213
- - Testes automatizados (pytest) e linters.
214
-
215
- ## Proximos passos sugeridos
216
-
217
- - Substituir os stubs por comandos reais (apt, ufw, helm, kubectl, etc.).
218
- - Adicionar validacoes e testes (por exemplo, pytest + testcontainers).
219
- - Empacotar scripts auxiliares em `scripts/` e referencia-los nos modulos.
@@ -1,32 +0,0 @@
1
- raijin_server/__init__.py,sha256=JtoND-o0nm6bupzu-VJPw5itxg6wM-OlvlNI1RNU4Ao,94
2
- raijin_server/cli.py,sha256=WMPxcVqbedP-HEpdflV9nqsVr5UytZT6TuZIu9uvuR0,14448
3
- raijin_server/config.py,sha256=Dta2CS1d6RgNiQ84P6dTXk98boFrjzuvhs_fCdlm0I4,4810
4
- raijin_server/healthchecks.py,sha256=IA7HOvDnN9Qhq8q26eAnWXeiIj0VpEOJGDIU4Qq9DQs,9879
5
- raijin_server/utils.py,sha256=XQJxyzo5Edxtapf-n5SSpEmJvkkfrE7p8VZcWyapll8,7477
6
- raijin_server/validators.py,sha256=z7CIMzDH6Aczvqz7Mb8ICzEud6KTsh7_2Q_pP6wDQkc,7691
7
- raijin_server/modules/__init__.py,sha256=uQkNtU7rmYAKBrAlrVQGySuoSBW68lTmKd5YaLl2Zn0,603
8
- raijin_server/modules/bootstrap.py,sha256=pMgtNb9a6wPFK7L16kQoQ-v1oB8-l7C9lrEZ6IqDtm4,6723
9
- raijin_server/modules/calico.py,sha256=mWbmFixkebdDK0cIHAg-WR2i8zBHA49Nr_pm7dbeYOQ,1281
10
- raijin_server/modules/essentials.py,sha256=2xUXCyCQtFGd2DnCKV81N1R6bEJqH8zaet8mLovtQ1I,689
11
- raijin_server/modules/firewall.py,sha256=h6AISqiZeTinVT7BjmQIS872qRAFZJLg7meqlth3cfw,757
12
- raijin_server/modules/full_install.py,sha256=vN4H46Oyt_MAGMrO_AzcMNtRaJK3IQcSTRgs52gU0zc,4237
13
- raijin_server/modules/grafana.py,sha256=zxYpWBM-fD8vTgoJ2Hmb9P66wz_JuiidO6_cGK3jG30,1809
14
- raijin_server/modules/hardening.py,sha256=4hz3ifkMhPlXa2n7gPxN0gitQgzALZ-073vuU3LM4RI,1616
15
- raijin_server/modules/harness.py,sha256=dhZ89YIhlkuxiRU1deN6wXVWnXm0xeI03PwYf_qgfak,1527
16
- raijin_server/modules/istio.py,sha256=761FOGEzEXWlTLYApQxUWY8l4cnEbnIXbIHK3itk_AQ,522
17
- raijin_server/modules/kafka.py,sha256=bp8k_IhuAIO6dL0IpK1UxxLZoGih6nJp0ZnzwmiZEj8,950
18
- raijin_server/modules/kong.py,sha256=2EZKYBmBhm_7Nduw9PWrvrekp0VCxQbc2gElpAJqKfg,491
19
- raijin_server/modules/kubernetes.py,sha256=B_J2mHLjMNglksnZk08HSK3z55kNytuq5sVBbjAXbLY,6846
20
- raijin_server/modules/loki.py,sha256=erwFfSiSFOv-Ul3nFdrI2RElPYuqqBPBBa_MJAwyLys,676
21
- raijin_server/modules/minio.py,sha256=BVvsEaJlJUV92_ep7pKsBhSYPjWZrDOB3J6XAWYAHYg,486
22
- raijin_server/modules/network.py,sha256=aGHAOMfjhk4HhNRy50fAvU-Gseabsgh0t7xLfSK2tJ0,1651
23
- raijin_server/modules/prometheus.py,sha256=Et-Tj6LrM7WDyoYRSY464E67TrEHbRe2G8T8obagC48,1066
24
- raijin_server/modules/traefik.py,sha256=iA_ke9w7DSFMB5a6VUuNrWRF1kCeJRBRWqMwE9ER_NQ,1413
25
- raijin_server/modules/velero.py,sha256=_CV0QQnWr5L-CWXDOiD9Ef4J7GaQT-s9yNBwqp_FLOY,1395
26
- raijin_server/modules/vpn.py,sha256=uUmto0HSovjwR_6DtRi7dDtZDuFvzb9xiM7uZMKAJzA,6127
27
- raijin_server-0.1.0.dist-info/licenses/LICENSE,sha256=kJsMCjOiRZE0AQNtxWqBa32z9kMAaF4EUxyHj3hKaJo,1105
28
- raijin_server-0.1.0.dist-info/METADATA,sha256=-7O6WoyOjUFSIq0fN9An1yygk6g_rpPaNjEG4r7VFVE,7386
29
- raijin_server-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
30
- raijin_server-0.1.0.dist-info/entry_points.txt,sha256=3ZvxDX4pvcjkIRsXAJ69wIfVmKa78LKo-C3QhqN2KVM,56
31
- raijin_server-0.1.0.dist-info/top_level.txt,sha256=Yz1xneCRtsZOzbPIcTAcrSxd-1p80pohMXYAZ74dpok,14
32
- raijin_server-0.1.0.dist-info/RECORD,,