raijin-server 0.1.0__tar.gz
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-0.1.0/LICENSE +21 -0
- raijin_server-0.1.0/PKG-INFO +219 -0
- raijin_server-0.1.0/README.md +186 -0
- raijin_server-0.1.0/pyproject.toml +3 -0
- raijin_server-0.1.0/setup.cfg +50 -0
- raijin_server-0.1.0/src/raijin_server/__init__.py +5 -0
- raijin_server-0.1.0/src/raijin_server/cli.py +447 -0
- raijin_server-0.1.0/src/raijin_server/config.py +139 -0
- raijin_server-0.1.0/src/raijin_server/healthchecks.py +296 -0
- raijin_server-0.1.0/src/raijin_server/modules/__init__.py +26 -0
- raijin_server-0.1.0/src/raijin_server/modules/bootstrap.py +224 -0
- raijin_server-0.1.0/src/raijin_server/modules/calico.py +36 -0
- raijin_server-0.1.0/src/raijin_server/modules/essentials.py +29 -0
- raijin_server-0.1.0/src/raijin_server/modules/firewall.py +27 -0
- raijin_server-0.1.0/src/raijin_server/modules/full_install.py +131 -0
- raijin_server-0.1.0/src/raijin_server/modules/grafana.py +69 -0
- raijin_server-0.1.0/src/raijin_server/modules/hardening.py +47 -0
- raijin_server-0.1.0/src/raijin_server/modules/harness.py +47 -0
- raijin_server-0.1.0/src/raijin_server/modules/istio.py +13 -0
- raijin_server-0.1.0/src/raijin_server/modules/kafka.py +34 -0
- raijin_server-0.1.0/src/raijin_server/modules/kong.py +19 -0
- raijin_server-0.1.0/src/raijin_server/modules/kubernetes.py +187 -0
- raijin_server-0.1.0/src/raijin_server/modules/loki.py +27 -0
- raijin_server-0.1.0/src/raijin_server/modules/minio.py +19 -0
- raijin_server-0.1.0/src/raijin_server/modules/network.py +57 -0
- raijin_server-0.1.0/src/raijin_server/modules/prometheus.py +30 -0
- raijin_server-0.1.0/src/raijin_server/modules/traefik.py +40 -0
- raijin_server-0.1.0/src/raijin_server/modules/velero.py +47 -0
- raijin_server-0.1.0/src/raijin_server/modules/vpn.py +152 -0
- raijin_server-0.1.0/src/raijin_server/utils.py +241 -0
- raijin_server-0.1.0/src/raijin_server/validators.py +230 -0
- raijin_server-0.1.0/src/raijin_server.egg-info/PKG-INFO +219 -0
- raijin_server-0.1.0/src/raijin_server.egg-info/SOURCES.txt +36 -0
- raijin_server-0.1.0/src/raijin_server.egg-info/dependency_links.txt +1 -0
- raijin_server-0.1.0/src/raijin_server.egg-info/entry_points.txt +2 -0
- raijin_server-0.1.0/src/raijin_server.egg-info/requires.txt +18 -0
- raijin_server-0.1.0/src/raijin_server.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rafael Luis da Costa Coelho
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,219 @@
|
|
|
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.
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# raijin-server
|
|
2
|
+
|
|
3
|
+
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.
|
|
4
|
+
|
|
5
|
+
**✨ Versão Auditada e Resiliente para Produção**
|
|
6
|
+
|
|
7
|
+
## Destaques
|
|
8
|
+
|
|
9
|
+
- ✅ **Validações de Pré-requisitos**: OS, espaço em disco, memória, conectividade
|
|
10
|
+
- ✅ **Health Checks Automáticos**: Valida serviços após instalação
|
|
11
|
+
- ✅ **Retry Inteligente**: Resistente a falhas temporárias de rede
|
|
12
|
+
- ✅ **Logging Estruturado**: Logs persistentes para auditoria
|
|
13
|
+
- ✅ **Gestão de Dependências**: Garante ordem correta de execução
|
|
14
|
+
- ✅ **Configuração via Arquivo**: Automação completa com YAML/JSON
|
|
15
|
+
- ✅ **Idempotência**: Re-execução segura sem quebrar o sistema
|
|
16
|
+
- ✅ **Modo Dry-run**: Simula execução sem aplicar mudanças
|
|
17
|
+
|
|
18
|
+
## Requisitos
|
|
19
|
+
|
|
20
|
+
- Python >= 3.9
|
|
21
|
+
- Ubuntu Server 20.04+ (testado em 24.04)
|
|
22
|
+
- Permissões root/sudo
|
|
23
|
+
- Conectividade com internet
|
|
24
|
+
- Mínimo 4GB RAM, 20GB disco livre
|
|
25
|
+
- Ferramentas: `curl`, `apt-get`, `systemctl`
|
|
26
|
+
|
|
27
|
+
Ferramentas adicionais (instaladas pelos módulos quando necessário):
|
|
28
|
+
- `helm` (>=3.8 para OCI)
|
|
29
|
+
- `kubectl`, `kubeadm`
|
|
30
|
+
- `velero`, `istioctl`
|
|
31
|
+
|
|
32
|
+
## Instalacao
|
|
33
|
+
|
|
34
|
+
Sem venv (global):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
python -m pip install .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Com venv (recomendado para desenvolvimento):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
python -m venv .venv
|
|
44
|
+
source .venv/bin/activate
|
|
45
|
+
python -m pip install -e .
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Uso rapido
|
|
49
|
+
|
|
50
|
+
### Validar Sistema
|
|
51
|
+
```bash
|
|
52
|
+
# Verifica se o sistema atende pré-requisitos
|
|
53
|
+
sudo raijin-server validate
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Menu Interativo
|
|
57
|
+
```bash
|
|
58
|
+
# Menu visual com stautils.py`: Funções utilitárias com retry, timeout e logging.
|
|
59
|
+
- `src/raijin_server/validators.py`: Validações de pré-requisitos e dependências.
|
|
60
|
+
- `src/raijin_server/healthchecks.py`: Health checks pós-instalação.
|
|
61
|
+
- `src/raijin_server/config.py`: Gerenciamento de configuração via arquivo.
|
|
62
|
+
- `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).
|
|
63
|
+
- `scripts/`: Espaço para shells e templates auxiliares.
|
|
64
|
+
- `ARCHITECTURE.md`: Visão do desenho técnico.
|
|
65
|
+
- `AUDIT.md`: Relatório completo de auditoria e melhorias.
|
|
66
|
+
- `SECURITY.md`: Como reportar vulnerabilidades
|
|
67
|
+
### Execução Direta de Módulos
|
|
68
|
+
```bash
|
|
69
|
+
# Executar módulo específico
|
|
70
|
+
sudo raijin-server kubernetes
|
|
71
|
+
|
|
72
|
+
# Dry-run (simula sem aplicar)
|
|
73
|
+
sudo raijin-server --dry-run kubernetes
|
|
74
|
+
|
|
75
|
+
# Pular validações (não recomendado)
|
|
76
|
+
sudo raijin-server --skip-validation kubernetes
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Automação via Arquivo de Configuração
|
|
80
|
+
```bash
|
|
81
|
+
# Gerar template de configuração
|
|
82
|
+
ra✅ Validações de pré-requisitos e health-check por módulo
|
|
83
|
+
- ✅ Gestão automática de dependências entre módulos
|
|
84
|
+
- ✅ Sistema de logging estruturado e persistente
|
|
85
|
+
- ✅ Retry automático e timeouts configuráveis
|
|
86
|
+
- ✅ Configuração via arquivo YAML/JSON
|
|
87
|
+
- ⏳ Provisionar ingress seguro para Grafana/Prometheus/Alertmanager
|
|
88
|
+
- ⏳ Dashboards e alertas opinativos prontos para uso
|
|
89
|
+
- ⏳ Suporte a sealed-secrets/external-secrets para credenciais
|
|
90
|
+
- ⏳ Testes automatizados (pytest) e linters
|
|
91
|
+
- ⏳ Rollback automático em falhas
|
|
92
|
+
- ⏳ Modo de instalação mínima vs completa
|
|
93
|
+
|
|
94
|
+
## Documentação Adicional
|
|
95
|
+
|
|
96
|
+
- **[AUDIT.md](AUDIT.md)**: Relatório completo de auditoria e melhorias implementadas
|
|
97
|
+
- **[ARCHITECTURE.md](ARCHITECTURE.md)**: Arquitetura técnica do ambiente
|
|
98
|
+
- **[SECURITY.md](SECURITY.md)**: Políticas de segurança e reporte de vulnerabilidades
|
|
99
|
+
|
|
100
|
+
## Fluxo de Execução Recomendado
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# 1. Validar sistema
|
|
104
|
+
sudo raijin-server validate
|
|
105
|
+
|
|
106
|
+
# 2. Base do sistema
|
|
107
|
+
sudo raijin-server essentials
|
|
108
|
+
sudo raijin-server hardening
|
|
109
|
+
sudo raijin-server network
|
|
110
|
+
sudo raijin-server firewall
|
|
111
|
+
|
|
112
|
+
# 3. Kubernetes
|
|
113
|
+
sudo raijin-server kubernetes
|
|
114
|
+
sudo raijin-server calico
|
|
115
|
+
|
|
116
|
+
# 4. Ingress (escolha um)
|
|
117
|
+
sudo raijin-server traefik
|
|
118
|
+
# OU
|
|
119
|
+
sudo raijin-server kong
|
|
120
|
+
|
|
121
|
+
# 5. Observabilidade
|
|
122
|
+
sudo raijin-server prometheus
|
|
123
|
+
sudo raijin-server grafana
|
|
124
|
+
sudo raijin-server loki
|
|
125
|
+
|
|
126
|
+
# 6. Storage e Mensageria (opcional)
|
|
127
|
+
sudo raijin-server minio
|
|
128
|
+
sudo raijin-server kafka
|
|
129
|
+
|
|
130
|
+
# 7. Backup
|
|
131
|
+
sudo raijin-server velero
|
|
132
|
+
|
|
133
|
+
# 8. Service Mesh (opcional)
|
|
134
|
+
sudo raijin-server istio
|
|
135
|
+
```
|
|
136
|
+
# Executar com configuração
|
|
137
|
+
sudo raijin-server --config production.yaml kubernetes
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Comandos Úteis
|
|
141
|
+
```bash
|
|
142
|
+
# Versão
|
|
143
|
+
raijin-server version
|
|
144
|
+
|
|
145
|
+
# Monitorar logs
|
|
146
|
+
tail -f /var/log/raijin-server/raijin-server.log
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Estrutura
|
|
150
|
+
|
|
151
|
+
- `src/raijin_server/cli.py`: CLI principal com Typer, banner e `--dry-run`.
|
|
152
|
+
- `src/raijin_server/modules/`: automacoes por topico (hardening, network, essentials, firewall, kubernetes, calico, istio, traefik, kong, minio, prometheus, grafana, loki, harness, velero, kafka).
|
|
153
|
+
- `scripts/`: espaco para shells e templates.
|
|
154
|
+
- `ARCHITECTURE.md`: visao do desenho atual.
|
|
155
|
+
- `SECURITY.md`: como reportar e pensar seguranca.
|
|
156
|
+
|
|
157
|
+
## Modulos disponiveis
|
|
158
|
+
|
|
159
|
+
- `hardening`: fail2ban, unattended-upgrades, sysctl.
|
|
160
|
+
- `essentials`: pacotes base (curl, git, jq, etc.) e NTP.
|
|
161
|
+
- `network`: Netplan com IP fixo e DNS.
|
|
162
|
+
- `firewall`: UFW com regras para SSH/HTTP/HTTPS/K8s.
|
|
163
|
+
- `kubernetes`: kubeadm init, containerd SystemdCgroup, kubeconfig.
|
|
164
|
+
- `calico`: CNI Calico com CIDR custom e policy default-deny.
|
|
165
|
+
- `istio`: istioctl install (perfil raijin) e injeção automática.
|
|
166
|
+
- `traefik`: IngressController com TLS/ACME.
|
|
167
|
+
- `kong`: Ingress/Gateway com Helm.
|
|
168
|
+
- `minio`: armazenamento S3 compatível via Helm.
|
|
169
|
+
- `prometheus`, `grafana`, `loki`: observabilidade, dashboards e persistencia.
|
|
170
|
+
- `harness`: delegate Helm com parametros interativos.
|
|
171
|
+
- `velero`: backup/restore com schedule.
|
|
172
|
+
- `kafka`: deploy Bitnami via OCI.
|
|
173
|
+
|
|
174
|
+
## Roadmap basico
|
|
175
|
+
|
|
176
|
+
- Adicionar validacoes de pre-requisitos e health-check por modulo.
|
|
177
|
+
- Provisionar ingress seguro para Grafana/Prometheus/Alertmanager.
|
|
178
|
+
- Dashboards e alertas opinativos prontos para uso.
|
|
179
|
+
- Suporte a sealed-secrets/external-secrets para credenciais.
|
|
180
|
+
- Testes automatizados (pytest) e linters.
|
|
181
|
+
|
|
182
|
+
## Proximos passos sugeridos
|
|
183
|
+
|
|
184
|
+
- Substituir os stubs por comandos reais (apt, ufw, helm, kubectl, etc.).
|
|
185
|
+
- Adicionar validacoes e testes (por exemplo, pytest + testcontainers).
|
|
186
|
+
- Empacotar scripts auxiliares em `scripts/` e referencia-los nos modulos.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
[metadata]
|
|
2
|
+
name = raijin-server
|
|
3
|
+
version = 0.1.0
|
|
4
|
+
description = CLI para automacao de setup e hardening de servidores Ubuntu Server.
|
|
5
|
+
long_description = file: README.md
|
|
6
|
+
long_description_content_type = text/markdown
|
|
7
|
+
author = Equipe Raijin
|
|
8
|
+
license = MIT
|
|
9
|
+
url = https://example.com/raijin-server
|
|
10
|
+
classifiers =
|
|
11
|
+
Programming Language :: Python :: 3
|
|
12
|
+
Programming Language :: Python :: 3 :: Only
|
|
13
|
+
Programming Language :: Python :: 3.9
|
|
14
|
+
License :: OSI Approved :: MIT License
|
|
15
|
+
Intended Audience :: System Administrators
|
|
16
|
+
Environment :: Console
|
|
17
|
+
|
|
18
|
+
[options]
|
|
19
|
+
package_dir =
|
|
20
|
+
= src
|
|
21
|
+
packages = find:
|
|
22
|
+
python_requires = >=3.9
|
|
23
|
+
install_requires =
|
|
24
|
+
typer>=0.12
|
|
25
|
+
rich>=13.7
|
|
26
|
+
include_package_data = True
|
|
27
|
+
|
|
28
|
+
[options.extras_require]
|
|
29
|
+
yaml =
|
|
30
|
+
pyyaml>=6.0
|
|
31
|
+
dev =
|
|
32
|
+
pytest>=7.0
|
|
33
|
+
pytest-cov>=4.0
|
|
34
|
+
black>=23.0
|
|
35
|
+
ruff>=0.1
|
|
36
|
+
all =
|
|
37
|
+
%(yaml)s
|
|
38
|
+
%(dev)s
|
|
39
|
+
|
|
40
|
+
[options.packages.find]
|
|
41
|
+
where = src
|
|
42
|
+
|
|
43
|
+
[options.entry_points]
|
|
44
|
+
console_scripts =
|
|
45
|
+
raijin-server = raijin_server.cli:app
|
|
46
|
+
|
|
47
|
+
[egg_info]
|
|
48
|
+
tag_build =
|
|
49
|
+
tag_date = 0
|
|
50
|
+
|