Обложка: Как создать APT репозиторий в Sonatype Nexus 3?

Как создать APT репозиторий в Sonatype Nexus 3?

Что такое Sonatype Nexus 3?

Sonatype Nexus 3 — это свободно распространяемый менеджер репозиториев, с удобным web-интерфейсом. Менеджер позволяет создавать репозитории, как для хранения конкретных форматов данных (yum, apt, Maven, Docker, npm, PyPl и так далее), так и формат хранения файлов Raw, в котором можно хранить любые типы файлов.

Менеджер репозиториев можно установить, как на обычную физическую или виртуальную машину, так и развернуть в docker-контейнере. Я разворачивал Nexus в docker-контейнере, поэтому буду описывать, как поднять APT репозиторий именно в docker. Доступные docker-образы Sonatype Nexus 3 можно найти по этой ссылке.

Установка зависимостей

Первое что нужно сделать, это подключиться к docker-контейнеру с оболочкой bash:

docker exec -it -u 0 nexus bash

После этого нужно установить пакет pinentry, для того, чтобы можно было дальше сгенерировать ключи для apt репозитория:

yum -y install pinentry

Генерация ключей

После установки пакета pinentry, можно приступать к созданию ключей:

gpg --gen-key

Заполняем поля, вводим O и нажимаем Enter. Далее нужно будет ввести 2 раза пароль, для генерации ключа. Копируем ID, который был сгенерирован 6C44AA9D06EA1B2E805C90FF6935F7FB57FFEF6F. Создаём открытый ключ:

gpg --armor --output public.gpg.key --export 6C44AA9D06EA1B2E805C90FF6935F7FB57FFEF6F

Создаём закрытый ключ:

gpg --armor --output private.gpg.key --export-secret-key 6C44AA9D06EA1B2E805C90FF6935F7FB57FFEF6F

Здесь нужно будет ввести пароль, который вводили при генерации ID.

Выводим содержимое файла, который был сгенерирован при создание закрытого ключа. Копируем содержимое файла.

cat private.gpg.key

Создание APT репозитория

Заходим в web-интерфейс менеджера репозиториев Nexus http://10.10.1.1:8080. Авторизуемся с правами администратора и нажимаем на шестерёнку вверху. Далее выбираем раздел Repositories. Нажимаем Create repository и выбираем apt(hosted):

Иллюстрация: Sonatype Nexus 3

Создание APT репозитория

Далее заполняем поля и вставляем в поле Signing Key содержимое из файла private.gpg.key:

Вставляем закрытый ключ

В поле Passphrase вводим пароль, который вводили при генерации ID и закрытого ключа. Нажимаем Create repository. После этого будет создан репозиторий APT, в который можно загружать deb-файлы и подключать к Debian/Ubuntu или подобным ОС.