Установка и применение Artifactory на Linux Ubuntu

Обновлено и опубликовано Опубликовано:

Artifactory — инструмент для хранения артефактов (пакетов, разработанных вами или другими разработчиками). В нашей инструкции мы рассмотрим пример настройки сервиса для проксирования пакетов Python — клиент будет запрашивать пакет для установки у нашего сервера, а если его нет, то Artifactory запросит его в Интернет и сохранит копию у себя.

Подготовка системы

1. Установка обновлений. Сначала обновляем список пакетов в репозитории:

apt update

Если наша система чистая и на ней не работают критически важные сервисы, стоит обновить установленные пакеты: 

apt upgrade

2. Если в нашей системе брандмауэр по умолчанию настроен на запрет входящих пакетов, то открываем порты 8081 и 8082:

iptables -I INPUT -p tcp --dport 8081 -j ACCEPT

iptables -I INPUT -p tcp --dport 8082 -j ACCEPT

Для сохранения правил используем iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

3. Установка необходимых пакетов:

apt install jq net-tools libllvm9 socat

* без данных пакетов установка Artifactory вернет ошибку:

  • jq — утилита для обработки JSON в командной строке.
  • net-tools — набор утилит для работы с сетью.
  • libllvm9 — набор библиотек и инструментов, упрощающих создание компиляторов, и программ, связанных с компилятором.
  • socat — инструмент для переадресации запросов к сокетам c хостовой машины на клиентскую.

Мы готовы перейти к установке Artifactory.

Установка Artifactory

Artifactory распространяется на платной основе. Поэтому мы установим триальную версию и получим код для его активации на 30 дней.

Скачиваем архив со скриптами установки:

wget -O jfrog-deb-installer.tar.gz "https://releases.jfrog.io/artifactory/jfrog-prox/org/artifactory/pro/deb/jfrog-platform-trial-prox/[RELEASE]/jfrog-platform-trial-prox-[RELEASE]-deb.tar.gz"

Распакуем данный архив:

tar -xvzf jfrog-deb-installer.tar.gz

Переходим в каталог с содержимым распакованного архива:

cd jfrog-platform-trial-pro*

Запускаем скрипт установки:

./install.sh

Он будет выполняться некоторое время, после чего мы получим сообщение о необходимости запустить сервисы artifactory и xray.

Выполним это командами:

systemctl enable artifactory --now

systemctl enable xray --now

Теперь открываем браузер и переходим по адресу:

http://<IP-адрес сервера>:8082/ui/ — мы должны увидеть форму для входа в систему. Вводим логин и пароль по умолчанию (admin и password):

Вход в Artifactory

Мы должны попасть на мастер настройки. Пока ничего не делаем.

Отвлечемся от нашего сервера и перейдем по адресу https://jfrog.com/start-free/#hosted — должна открыться страница регистрации для получения триального ключа. Вводим свои данные для регистрации:

Регистрация для получения лицензии

Ключ для компонентов artifactory и xray будут отправлены нам на почту. 

Возвращаемся к нашему серверу и активируем систему:

Вводим лицензию

На этом установка завершена и Artifactory готов к работе. Мы же ограничимся примером настройки проксирования для пакетов Python.

Настройка проксирования пакетов Python через Artifactory

Мы рассмотрим:

  • Настройку сервера Artifactory для проксирования пакетов Python.
  • Настройку клиента Linux для использования Artifactory в качестве прокси для утилиты pip.

Приступим...

Настройка сервера

В веб-интерфейсе перейдем в раздел администрирования:

Переходим в администрирование artifactory

По очереди создадим 3 репозитория — локальный, удаленный и виртуальный. 

Начнем с локального:

Переходим к созданию репозитория

Выбираем среди списка репозиторий Pypi:

Выбираем среди готовых шаблонов репозиторий Pypi

Задаем имя для репозитория в нашей системе:

Даем название для локального репозитория

Локальный репозиторий создан.

По аналогии, создаем удаленный:

Даем название для удаленного репозитория

А также виртуальный:

Даем название для виртуального репозитория

При настройке виртуального репозитория добавим в него ранее созданные локальный и удаленный:

Включаем в виртуальные репозиторий локальный и удаленный

Это минимально-достаточная настройка для наших целей. Переходим к настройке клиента.

Настройка клиента

Остаемся в веб-интерфейсе Artifactory. В правом верхнем углу кликаем по Welcome, admin и выбираем Set Me Up:

Переходим к инструменту для получения настроек клиента

В открывшемся окне выбираем «Package Type» Pypi и наш виртуальный репозиторий pypi. Вводим пароль для пользователя, под которым мы вошли в веб-интерфейс:

Вводим наш пароль для пользователя admin

Переходим на вкладку Resolve — мы должны увидеть текст для настройки клиента:

Получаем готовый конфиг для клиента pip

Теперь переходим на компьютер, где будем настраивать клиент. Открываем конфигурационный файл для pip:

vi /etc/pip.conf

Если нужно настроить pip только для конкретного пользователя, вводим:

mkdir ~/.pip

vi ~/.pip/pip.conf

Добавляем текст, который мы получили ранее, а также добавляем настройку trusted-host:

[global]
index-url = http://admin:APLdxDAPCHVrL2sGfuh1N58fk8@192.168.101.100:8081/artifactory/api/pypi/pipy/simple
trusted-host = 192.168.101.100

* где:

  • index-url — указывает на хранилище пакетов Python, откуда pip должен выполнять установку.
  • 192.168.101.100 — IP-адрес нашего сервера Artifactory.
  • trusted-host — позволяет перечислить серверы, которым будет доверять наш клиент. Чтобы не указывать данную настройку, наш сервер должен отвечать по https.

Пробуем установить Python-пакет с помощью pip, например:

pip install django

Мы должны увидеть, что установка выполняется с нашего сервера Artifactory.

# DevOps # Ubuntu # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет