Начало работы
Установка
Заголовок раздела «Установка»Самый простой путь — одна команда, сама подберёт нужный бинарник под вашу ОС/архитектуру:
curl -fsSL https://get.enodia.sh/unix | sh # Linux/macOS/Android (Termux)irm https://get.enodia.sh/windows | iex # Windowsenodia сразу же доступна в том же самом окне PowerShell — установщик
патчит PATH текущей сессии напрямую, а не только сохранённое значение
в реестре, которое подхватил бы только новый терминал.
Либо пакет, если хотите, чтобы обновления отслеживал пакетный менеджер:
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 # ArchКаждый пакет ставит бинарник в /usr/bin/enodia, man-страницы в
/usr/share/man/man1/ и создаёт отдельного непривилегированного
системного пользователя enodia — для запуска ничего из этого не
требует root. Нужный файл — на странице
последнего релиза.
Либо контейнер:
docker run --rm \ -v /etc/enodia:/config:ro \ ghcr.io/epicmorg/enodia:latest check --config /config/config.yamlТот же образ публикуется и в docker.io/epicmorg/enodia, и в Quay —
те же теги, тот же multi-arch манифест, можно выбрать тот registry,
откуда уже и так тянутся остальные образы. Кроме latest, каждый
релиз публикует и полный закреплённый номер версии (например
1.0.0-1 — + не разрешён в Docker-теге, поэтому разделитель
build-метаданных становится -), и голый тег мажорной версии (1),
если нужно закрепиться не так жёстко, как на latest.
Сборка из исходников
Заголовок раздела «Сборка из исходников»Нужен Go — точную версию, на которую сейчас рассчитана enodia, смотрите
в go.mod.
git clone https://github.com/EpicMorg/enodia.gitcd enodiago build -o enodia ./cmd/enodia./enodia versionПоддерживаемые платформы
Заголовок раздела «Поддерживаемые платформы»| ОС | Архитектура | Минимальная версия |
|---|---|---|
| Linux | amd64, arm64 | Ядро 3.2 или новее — Debian 8+, Ubuntu 14.04+, RHEL/CentOS 7+ подходят с запасом |
| Windows | amd64, arm64, 386 | Windows 10 / Windows Server 2016 или новее |
| macOS | amd64, arm64 | macOS 12 Monterey или новее |
| Android (Termux) | только arm64 | Android 7 или новее — собственный минимум Termux, строже, чем Android 5.0 Lollipop — минимум для поддержки PIE, который на деле и привёл к отдельной сборке (см. заметку про Termux выше). На рутованных устройствах может понадобиться su — см. предупреждение выше |
Это собственный минимум тулчейна Go, а не что-то, что enodia добавляет сверху. Сборка из исходников более новым Go поднимает минимум для macOS ещё выше — это решение тулчейна, а не проекта.
Ваш первый конфиг
Заголовок раздела «Ваш первый конфиг»Создайте enodia.yaml рядом с бинарником (или в любом из мест,
перечисленных в
Конфигурации):
schemaVersion: 1targets: - id: gitlab-main product: gitlab address: https://gitlab.example.comЗатем запустите:
enodia checkID PRODUCT PATCH LIFECYCLE BRANCH SEVERITY REASONgitlab-main gitlab ...check без --from собирает данные и оценивает их за один прогон —
enodia достучится до вашего таргета, затем до интернета за данными
жизненного цикла. Если у таргета есть сеть только до вашей
инфраструктуры (закрытый контур), а не до интернета — разделите фазы:
# внутри закрытого контура - интернет не нуженenodia collect --config enodia.yaml -o inventory.jsonl
# где угодно ещё - доступ к сервисам не нуженenodia check --from inventory.jsonlДобавление учётных данных
Заголовок раздела «Добавление учётных данных»Таргету с приватным API нужен именованный credential, который
резолвится из карты credentials: в enodia.yaml (либо из отдельного
credentials.yaml — см. Конфигурацию):
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} подставляется из окружения в момент загрузки — см.
Конфигурацию.
Секретам не обязательно жить в одном файле с инвентарём сервисов.
- Концепции — решения, которые стоят за всем этим.
- Справочник CLI — все команды и флаги.
- Представления — не только дефолтная таблица, но и
lifecycle,drift,fleet.