Thank you for reading this post, don't forget to subscribe!
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