Локальный репозиторий пакетов и docker образов - Nexus repository

Для IP адресов России часто стали встречаться блокировки доступа к репозиториям популярных продуктов. Первое, что вспоминается - Hashicorp, Elastic, Grafana и т. д. Для решения этих проблем становятся актуальны локальные репозитории. Я уже рассказывал про отдельные программы для deb и rpm репозиториев. Сегодня хочу рассказать про универсальный open source проект для организации локальных репозиториев различных типов - Nexus repository.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

📌 Основные возможности Nexus repository:

  1. управление через браузер или api;
  2. ролевая модель доступа к репозиториям;
  3. интеграция с ldap;
  4. может работать как локальный репозиторий или в режиме прокси.

С помощью Nexus можно быстро поднять локальные репозитории огромного списка типов - rpm, deb, docker, helm и много других. Он поддерживает практически все современные репозитории. Запуск можно выполнить через готовый Docker образ:

# docker volume create --name nexus-data
# docker run -d -p 8081:8081 --name nexus \
-v nexus-data:/nexus-data sonatype/nexus3

После этого смотрим пароль пользователя admin в файле /var/lib/docker/volumes/nexus-data/_data/admin.password. Теперь можно идти в веб интерфейс и создавать репозитории. Сделать это очень просто. Например, создаёте репозиторий apt, генерируете gpg ключ, через браузер заливаете в репозиторий готовый пакет. Потом идёте в систему, импортируете ключ и подключаете репозиторий. Путь к нему можно посмотреть через веб интерфейс. Примерно так выглядит процедура для любого репозитория.

На все действия есть подсказки в веб интерфейсе или в документации. Так что продукт максимально дружелюбен к пользователю. А для автоматизации можно использовать API.

⇨ Сайт: sonatype.com/products/nexus-repository

nexus repository

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

2 комментария

  1. Такой вопрос: а как правильно настраивать кэширование nupkg-пакетов? Использую Chocolatey на win-машине с прописанным nexus-репозиторием. Но при попытке установить пакет("choco install visioviewer2016 -v" - например) появляется в Nexus(nuget-group) его nuget-пакет объёмом 5.3Кбайт, т.е. по сути не полноценный пакет. А на самой win-машине появляется ошибка о невозможности скачать его с внешнего источника:
    Attempt to get headers for https://download.microsoft.com/download/D/B/7/DB790874-4414-417F-ADF6-348B29572B9F/visioviewer_4339-1001_x64_en-us.exe failed.
    The remote file either doesn't exist, is unauthorized, or is forbidden for url 'https://download.microsoft.com/download/D/B/7/DB790874-4414-417F-ADF6-348B29572B9F/visioviewer_4339-1001_x64_en-us.exe'. Exception calling "GetResponse" with "0" argument(s): "Unable to connect to the remote server"
    Downloading visioviewer2016 64 bit
    from 'https://download.microsoft.com/download/D/B/7/DB790874-4414-417F-ADF6-348B29572B9F/visioviewer_4339-1001_x64_en-us.exe'
    ERROR: The remote file either doesn't exist, is unauthorized, or is forbidden for url 'https://download.microsoft.com/download/D/B/7/DB790874-4414-417F-ADF6-348B29572B9F/visioviewer_4339-1001_x64_en-us.exe'. Exception calling "GetResponse" with "0" argument(s): "Unable to connect to the remote server"
    The install of visioviewer2016 was NOT successful.
    Error while running 'C:\ProgramData\chocolatey\lib\visioviewer2016\tools\chocolateyInstall.ps1'.
    See log for details.

    Если же дать win-машине доступ в интернет(а не только по ЛВС), то пакет скачивается и устанавливается на этой машине, но в репозитории Nexus так и не появляется.

    • Если это вопрос ко мне, то я не знаю, чем помочь. Никогда не использовал Nexus в этом ключе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar