Установка и применение Artifactory на Linux Ubuntu
Artifactory — инструмент для хранения артефактов (пакетов, разработанных вами или другими разработчиками). В нашей инструкции мы рассмотрим пример настройки сервиса для проксирования пакетов Python — клиент будет запрашивать пакет для установки у нашего сервера, а если его нет, то Artifactory запросит его в Интернет и сохранит копию у себя.
Подготовка сервера
Установка 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):
Мы должны попасть на мастер настройки. Пока ничего не делаем.
Отвлечемся от нашего сервера и перейдем по адресу https://jfrog.com/start-free/#hosted — должна открыться страница регистрации для получения триального ключа. Вводим свои данные для регистрации:
Ключ для компонентов artifactory и xray будут отправлены нам на почту.
Возвращаемся к нашему серверу и активируем систему:
На этом установка завершена и Artifactory готов к работе. Мы же ограничимся примером настройки проксирования для пакетов Python.
Настройка проксирования пакетов Python через Artifactory
Мы рассмотрим:
- Настройку сервера Artifactory для проксирования пакетов Python.
- Настройку клиента Linux для использования Artifactory в качестве прокси для утилиты pip.
Приступим...
Настройка сервера
В веб-интерфейсе перейдем в раздел администрирования:
По очереди создадим 3 репозитория — локальный, удаленный и виртуальный.
Начнем с локального:
Выбираем среди списка репозиторий Pypi:
Задаем имя для репозитория в нашей системе:
Локальный репозиторий создан.
По аналогии, создаем удаленный:
А также виртуальный:
При настройке виртуального репозитория добавим в него ранее созданные локальный и удаленный:
Это минимально-достаточная настройка для наших целей. Переходим к настройке клиента.
Настройка клиента
Остаемся в веб-интерфейсе Artifactory. В правом верхнем углу кликаем по Welcome, admin и выбираем Set Me Up:
В открывшемся окне выбираем «Package Type» Pypi и наш виртуальный репозиторий pypi. Вводим пароль для пользователя, под которым мы вошли в веб-интерфейс:
Переходим на вкладку Resolve — мы должны увидеть текст для настройки клиента:
Теперь переходим на компьютер, где будем настраивать клиент. Открываем конфигурационный файл для 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.