Primeiros passos
Instalação
Seção intitulada “Instalação”O caminho mais fácil — um único comando, que escolhe o binário certo para o seu SO/arquitetura:
curl -fsSL https://get.enodia.sh/unix | sh # Linux/macOS/Android (Termux)irm https://get.enodia.sh/windows | iex # WindowsO enodia pode ser executado imediatamente depois, nessa mesma janela do
PowerShell — o instalador altera o PATH da sessão atual diretamente, e não
apenas o valor persistido no registro que um terminal novo carregaria.
No Windows, o Chocolatey também funciona, se você preferir que o gerenciador de pacotes acompanhe as atualizações (um pacote winget está a caminho, ainda não publicado):
choco install enodiaOu um pacote, se você preferir que o gerenciador de pacotes acompanhe as atualizações:
sudo dpkg -i enodia_linux_amd64.deb # Debian/Ubuntusudo rpm -i enodia_linux_amd64.rpm # Fedora/RHELapk add --allow-untrusted enodia_linux_amd64.apk # Alpinesudo pacman -U enodia_linux_amd64.pkg.tar.zst # ArchTodos os pacotes instalam o binário em /usr/bin/enodia e as páginas de
manual em /usr/share/man/man1/, e criam um usuário de sistema enodia
dedicado e sem privilégios — nada aqui precisa de root para rodar. Baixe o
pacote certo na versão mais recente.
Ou um contêiner:
docker run --rm \ -v /etc/enodia:/config:ro \ ghcr.io/epicmorg/enodia:latest check --config /config/config.yamlDesde a 1.1.0, esta imagem é construída e publicada por um repositório
companheiro,
EpicMorg/docker,
com seu próprio cronograma — e não mais pelo pipeline de release deste
projeto, embora o endereço publicado e as tags continuem os mesmos. Ela
também é publicada em docker.io/epicmorg/enodia e no Quay, com as mesmas
tags — latest, a versão major isolada (2) e a versão exata sem sufixo de
build (por exemplo, 2.0.0 — confirmado na prática nos três registries; as
tags de um pipeline anterior tinham o formato 1.0.0-1, que ainda podem ser
baixadas, mas não é assim que as novas versões são marcadas daqui em diante).
Duas mudanças reais que vale conhecer: a imagem agora é apenas
linux/amd64 (o arm64 foi descartado quando a publicação mudou de lugar)
e ela roda como root em vez de um usuário dedicado, sobre a base própria
do projeto, debian:trixie-light, em vez de scratch.
Compilar a partir do código-fonte
Seção intitulada “Compilar a partir do código-fonte”Requer Go — verifique o go.mod para saber a versão exata que o enodia
usa atualmente.
git clone https://github.com/EpicMorg/enodia.gitcd enodiago build -o enodia ./cmd/enodia./enodia versionPlataformas suportadas
Seção intitulada “Plataformas suportadas”| SO | Arquitetura | Versão mínima |
|---|---|---|
| Linux | amd64, arm64 | Kernel 3.2 ou posterior — Debian 8+, Ubuntu 14.04+, RHEL/CentOS 7+ atendem com folga |
| Windows | amd64, arm64, 386 | Windows 10 / Windows Server 2016 ou posterior |
| macOS | amd64, arm64 | macOS 12 Monterey ou posterior |
| Android (Termux) | somente arm64 | Android 7 ou posterior — o piso do próprio Termux, mais restrito que o mínimo de suporte a PIE do Android 5.0 Lollipop, que foi o que de fato motivou o build separado (veja a nota sobre o Termux acima). Dispositivos com root podem precisar de su — veja o aviso acima |
Esses são os pisos do próprio toolchain do Go, e não algo que o enodia acrescenta. Compilar a partir do código-fonte com um Go mais novo eleva ainda mais o piso do macOS — essa é uma decisão do toolchain, não do projeto.
Sua primeira configuração
Seção intitulada “Sua primeira configuração”Crie um enodia.yaml ao lado do binário (ou em qualquer um dos locais
listados em Configuração):
schemaVersion: 1targets: - id: gitlab-main product: gitlab address: https://gitlab.example.comDepois execute:
enodia checkID PRODUCT PATCH LIFECYCLE BRANCH SEVERITY REASON CVESgitlab-main gitlab ...O check sem --from coleta e avalia em um único processo — o enodia
acessa o seu alvo e depois acessa a internet para consultar os dados de
ciclo de vida. Se o seu alvo só tem acesso de rede à sua infraestrutura (um
ambiente fechado) e não à internet, separe as duas fases:
# dentro da rede fechada - não precisa de internetenodia collect --config enodia.yaml -o inventory.jsonl
# em qualquer outro lugar - não precisa de acesso aos seus serviçosenodia check --from inventory.jsonlAdicionando credenciais
Seção intitulada “Adicionando credenciais”Um alvo com uma API privada precisa de uma credencial nomeada, resolvida a
partir do mapa credentials: do próprio enodia.yaml (ou de um
credentials.yaml separado — consulte Configuração):
schemaVersion: 1targets: - id: gitlab-main product: gitlab address: https://gitlab.example.com credentials: gitlab-token
credentials: gitlab-token: kind: token-header header: PRIVATE-TOKEN value: "${GITLAB_TOKEN}"${GITLAB_TOKEN} é interpolado a partir do ambiente no momento do
carregamento — consulte Configuração.
Os segredos nunca precisam ficar no mesmo arquivo que o inventário dos seus
serviços.
Próximos passos
Seção intitulada “Próximos passos”- Conceitos para as decisões de design por trás de tudo isso.
- Referência da CLI para todos os comandos e flags.
- Visões para
lifecycle,driftefleet— não só a tabela padrão.