Что такое Nexus в контексте DevOps и Linux?

«Что такое Nexus в контексте DevOps и Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В DevOps-практике Nexus Repository Manager (от Sonatype) — это артефактный репозиторий для хранения, управления и распространения бинарных сборок и зависимостей. В Linux-среде он развертывается как сервис, часто в Docker или как standalone Java-приложение.

Основные функции в DevOps-пайплайне:

  • Проксирование внешних репозиториев: Кэширует артефакты из Maven Central, npm Registry, Docker Hub, PyPI и других, ускоряя сборки и обеспечивая независимость от внешних сбоев.
  • Хостинг внутренних релизов: Централизованное хранилище для собственных Docker-образов, Java/JAR-библиотек, пакетов Helm, DEB/RPM-пакетов, собранных в CI/CD (например, Jenkins, GitLab CI).
  • Управление жизненным циклом: Поддержка snapshot и release-версий, политики хранения (cleanup) для экономии дискового пространства.
  • Безопасность и контроль доступа: Интеграция с LDAP/Active Directory, RBAC, сканирование компонентов на уязвимости (через IQ Server).

Пример развертывания и базового использования через Docker:

# Запуск контейнера Nexus 3
sudo docker run -d --name nexus -p 8081:8081 -p 8082:8082 -v nexus-data:/nexus-data sonatype/nexus3

# После запуска (через несколько минут) доступен по http://<server-ip>:8081
# Пароль администратора по умолчанию находится внутри контейнера:
sudo docker exec nexus cat /nexus-data/admin.password

Интеграция с CI/CD: В пайплайне Maven или Gradle указывается URL Nexus как <mirror> или repository. Для Docker используется приватный registry (docker push <nexus-host>:8082/my-image:latest).