Primii pași
Instalare
Secțiune intitulată „Instalare”Calea cea mai simplă — o singură comandă, care alege binarul potrivit pentru sistemul de operare și arhitectura dumneavoastră:
curl -fsSL https://get.enodia.sh/unix | sh # Linux/macOS/Android (Termux)irm https://get.enodia.sh/windows | iex # Windowsenodia poate fi rulat imediat după aceea în aceeași fereastră
PowerShell — programul de instalare modifică direct PATH-ul sesiunii
curente, nu doar valoarea persistată în registru pe care ar prelua-o un
terminal nou.
Pe Windows funcționează și Chocolatey, dacă preferați ca managerul de pachete să urmărească actualizările (un pachet winget este pe drum, încă nepublicat):
choco install enodiaSau un pachet, dacă preferați ca managerul de pachete să urmărească actualizările:
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 # ArchFiecare pachet instalează binarul în /usr/bin/enodia, paginile de
manual în /usr/share/man/man1/ și creează un utilizator de sistem
dedicat, neprivilegiat, enodia — nimic de aici nu necesită root pentru
a rula. Descărcați pachetul potrivit din
cea mai recentă versiune.
Sau un container:
docker run --rm \ -v /etc/enodia:/config:ro \ ghcr.io/epicmorg/enodia:latest check --config /config/config.yamlÎncepând cu 1.1.0, această imagine este construită și publicată de un
repository însoțitor,
EpicMorg/docker,
după propriul program — nu mai este publicată de pipeline-ul de lansare
al acestui proiect, deși adresa publicată și tag-urile rămân aceleași.
Este publicată și în docker.io/epicmorg/enodia și pe Quay, cu aceleași
tag-uri — latest, versiunea majoră simplă (2) și versiunea exactă
fără sufix de build (de exemplu 2.0.0 — confirmat în practică pe toate
cele trei registre; tag-urile unui pipeline anterior arătau în schimb ca
1.0.0-1, încă disponibile pentru pull, doar că noile versiuni nu mai
sunt etichetate astfel de acum înainte). Două schimbări reale care merită
știute: imaginea este acum doar linux/amd64 (arm64 a fost renunțat
odată cu mutarea publicării) și rulează ca root în loc de un
utilizator dedicat, pe baza proprie a proiectului, debian:trixie-light,
în loc de scratch.
Build din surse
Secțiune intitulată „Build din surse”Necesită Go — verificați go.mod pentru versiunea exactă pe care o
vizează în prezent enodia.
git clone https://github.com/EpicMorg/enodia.gitcd enodiago build -o enodia ./cmd/enodia./enodia versionPlatforme acceptate
Secțiune intitulată „Platforme acceptate”| Sistem de operare | Arhitectură | Versiune minimă |
|---|---|---|
| Linux | amd64, arm64 | Kernel 3.2 sau mai nou — Debian 8+, Ubuntu 14.04+, RHEL/CentOS 7+ se încadrează toate fără probleme |
| Windows | amd64, arm64, 386 | Windows 10 / Windows Server 2016 sau mai nou |
| macOS | amd64, arm64 | macOS 12 Monterey sau mai nou |
| Android (Termux) | doar arm64 | Android 7 sau mai nou — pragul propriu al Termux, mai strict decât minimul Android 5.0 Lollipop pentru suportul PIE, care a determinat de fapt build-ul separat (consultați nota despre Termux de mai sus). Dispozitivele cu root pot necesita su — consultați avertismentul de mai sus |
Acestea sunt pragurile proprii ale toolchain-ului Go, nu ceva adăugat de enodia. Un build din surse cu o versiune Go mai nouă ridică și mai mult pragul pentru macOS — aceasta este o decizie a toolchain-ului, nu a proiectului.
Prima configurație
Secțiune intitulată „Prima configurație”Creați enodia.yaml lângă binar (sau în oricare dintre locațiile
enumerate în Configurare):
schemaVersion: 1targets: - id: gitlab-main product: gitlab address: https://gitlab.example.comApoi rulați:
enodia checkID PRODUCT PATCH LIFECYCLE BRANCH SEVERITY REASON CVESgitlab-main gitlab ...check fără --from colectează și evaluează într-un singur proces —
enodia accesează ținta, apoi accesează internetul pentru a verifica
datele ciclului de viață. Dacă ținta are acces de rețea doar la
infrastructura dumneavoastră (un mediu închis), nu și la internet,
separați în schimb cele două faze:
# în interiorul rețelei închise - nu este nevoie de internetenodia collect --config enodia.yaml -o inventory.jsonl
# oriunde altundeva - nu este nevoie de acces la serviciile dumneavoastrăenodia check --from inventory.jsonlAdăugarea credențialelor
Secțiune intitulată „Adăugarea credențialelor”O țintă cu un API privat are nevoie de o credențială cu nume, rezolvată
din harta credentials: a fișierului enodia.yaml (sau dintr-un fișier
separat credentials.yaml — consultați Configurare):
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} este interpolat din mediu la încărcare — consultați
Configurare.
Secretele nu trebuie să se afle niciodată în același fișier cu inventarul
serviciilor dumneavoastră.
Mai departe
Secțiune intitulată „Mai departe”- Concepte pentru deciziile de design din spatele tuturor acestora.
- Referință CLI pentru fiecare comandă și flag.
- Vizualizări pentru
lifecycle,driftșifleet— nu doar tabelul implicit.