Nexus является популярным менеджером репозиториев (repository manager). Он используется для хранения артефактов или прокси, т.е. всё что выкачивается через него, сохраняется в нём.
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel createrepo
wget http://download.sonatype.com/nexus/3/latest-unix.tar.gz
tar xvf latest-unix.tar.gz -C /opt/
ln -s /opt/nexus-*/ /opt/nexus
useradd -m -r -s /bin/false nexus
chown -R nexus:nexus /opt/nexus-* /opt/sonatype-work /opt/nexus
vim /opt/nexus/bin/nexus.rc
run_as_user="nexus"
vim /etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
Уменьшить количество потребляемой оперативной памяти:
vim /var/nexus/nexus-3.19.1-01/bin/nexus.vmoptions
меняем
-Xms2703m
-Xmx2703m
на
-Xms512m
-Xmx512m
systemctl daemon-reload && systemctl enable nexus
systemctl start nexus && systemctl status nexus
WEB-интерфейс
http://<Nexus-server-ip-address>:8081
для авторизации в качестве логина используйте
admin
пароль можно посмотреть тут:
cat /opt/sonatype-work/nexus3/admin.password
также по умолчанию пароль может быть следующим:
Login: admin
daily
dateext
copytruncate
missingok
rotate 3
compress
delaycompress
notifempty
}
systemctl start nexus
добавляем в автозапуск
systemctl enable nexus
/opt/sonatype-work/nexus3/log/для удобства создадим симлинк
mkdir /var/log/nexus
========================================================================
Описание работы с данной утилитой
Общий репозиторий:
не забываем включить анонимный доступ чтоб реп работал:
Anonymous - > Allow anonymous users to access the server
Далее переходим к списку репозиториев:
Создаём новый proxy репозиторий (create reposytory - > yum(proxy))
Name: test-repo-epel
Создаём ещё один proxy репозиторий (create reposytory - > yum(proxy))
Name: yum-centos-7-repo_updates
http://mirror.centos.org/centos-7/7/updates/x86_64/
Создаём yum group
Name: yum-repo-group
добавляем в него 2 созданных нами прокси и сохраняем.
всё, репозиторий создан.
Теперь чтобы использовать его необходимо пройти в раздел:
reposytory ->
и на целевой тачке создаем репозиторий:
cat /etc/yum.repos.d/Centos-7-Nexus.repo
[Centos-7-Nexus]
baseurl = http://192.168.1.177:8081/repository/
gpgcheck = 1
enabled=1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
name = Centos-Nexus
сохраняем и проверяем.
=======================================================================
Общий репозиторий docker:
создаём docker(hosted):
repositories -> create repository -> docker(hosted)
Name: docker-private
type hosted
http: 8083
можно ещё добавить для https
Нажимаем save
создаём docker(proxy):
repositories -> create repository -> docker(proxy)
Name: docker-hub
type proxy
remote storage: https://registry-1.docker.io
docker index: выбирем Use Docker Hub
Нажимаем save
создаём docker(group):
repositories -> create repository -> docker(group)
Name: docker-group
http:8082
и добавляем в него docker-private docker-hub
Нажимаем save
на целевой тачке добавляем:
cat /etc/docker/daemon.json
{
"insecure-registries": ["192.168.1.177:8081","192.168.1.177:8082","192.168.1.177:8083"],
"experimental": true
}
Далее необходимо залогиниться в nexus репозитории:
docker login http://192.168.1.177:8082/repository/docker-group
!!! ВАЖНО. Если вы используете прокси, то необходимо убрать его, перезапустить демон, и рестартануть docker(reload не хватит):
mv /etc/systemd/system/docker.service.d/http-proxy.conf /home/
systemctl daemon-reload
systemctl restart dockerпроверить, что прокся не задействована вы можете с помощью команды:
docker info
в её выводе не должно быть прокси.
docker pull 192.168.1.177:8082/httpd
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.177:8082/nginx latest e445ab08b2be 37 hours ago 126MB
192.168.1.177:8082/httpd latest ee39f68eb241 12 days ago 154MB
docker tag 192.168.1.177:8082/nginx 192.168.1.177:8082/nginx33:3
System -> HTTP -> HTTP(s) Proxy
указываем ip и port нашего прокси, также можем задать список адресов которые исключаются из прокси(т.е. обращаясь к ним запрос не пойдёт через проксю)
Hosts to exclude from HTTP/HTTPS proxy
и нажимаем saveне забываем логиниться
docker login 192.168.1.177:8082
надо создать репозиторий:
Create repository - pypi (proxy) задаём имя (произвольное) в качестве remote storage указываем
https://pypi.org
сохраняем, далее создаём pypi(group) задаём имя (произвольное) добавляем в группу ранее созданый прокси репозиторий и сохраняем
получаем ссылку группы:
http://192.168.1.177:8082/repository/pypi-repo/
cat /etc/pip.conf
[global]
index = http://192.168.1.177:8082/repository/pypi-repo/pypi
index-url = http://192.168.1.177:8082/repository/pypi-repo/simple
и запускаем установку так:
pip install pypi-install --trusted-host 192.168.1.177