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.
- raijin_server/__init__.py +1 -1
- raijin_server/cli.py +76 -5
- raijin_server/healthchecks.py +76 -0
- raijin_server/modules/__init__.py +11 -2
- raijin_server/modules/apokolips_demo.py +378 -0
- raijin_server/modules/bootstrap.py +65 -0
- raijin_server/modules/calico.py +93 -22
- raijin_server/modules/cert_manager.py +127 -0
- raijin_server/modules/full_install.py +54 -19
- raijin_server/modules/network.py +96 -2
- raijin_server/modules/observability_dashboards.py +233 -0
- raijin_server/modules/observability_ingress.py +218 -0
- raijin_server/modules/sanitize.py +142 -0
- raijin_server/modules/secrets.py +109 -0
- raijin_server/modules/ssh_hardening.py +128 -0
- raijin_server/modules/traefik.py +1 -1
- raijin_server/modules/vpn.py +68 -3
- raijin_server/scripts/__init__.py +1 -0
- raijin_server/scripts/checklist.sh +60 -0
- raijin_server/scripts/install.sh +134 -0
- raijin_server/scripts/log_size_metric.sh +31 -0
- raijin_server/scripts/pre-deploy-check.sh +183 -0
- raijin_server/utils.py +45 -12
- raijin_server/validators.py +43 -4
- raijin_server-0.2.1.dist-info/METADATA +407 -0
- raijin_server-0.2.1.dist-info/RECORD +44 -0
- raijin_server-0.1.0.dist-info/METADATA +0 -219
- raijin_server-0.1.0.dist-info/RECORD +0 -32
- {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/WHEEL +0 -0
- {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/entry_points.txt +0 -0
- {raijin_server-0.1.0.dist-info → raijin_server-0.2.1.dist-info}/licenses/LICENSE +0 -0
- {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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|