Как установить и настроить Nexus Repository Manager в Ubuntu 20.04

12 set 2022 7 min di lettura
Как установить и настроить Nexus Repository Manager в Ubuntu 20.04
Indice dei contenuti

Введение

Nexus — это репозиторий, предоставляющий платформу, защищающую весь жизненный цикл разработки программного обеспечения. Он позволяет собирать зависимости и управлять ими, а также упрощает распространение программного обеспечения. Это единый источник всех компонентов, двоичных файлов и артефактов сборки. Он обеспечивает поддержку Gradle, Ant, Maven и Ivy и позволяет разработчику управлять компонентами через рельсы, контейнеры, сборки и готовые продукты. Вы также можете интегрировать Nexus с вашими существующими системами аутентификации и пользователей, такими как LDAP и Atlassian Crowd.

В этом руководстве мы покажем вам, как установить менеджер репозитория Nexus на Ubuntu 20.04 LTS Focal Fossa.

Предпосылки

  • Сервер под управлением Ubuntu 20.04 LTS.
  • Пользователь root или пользователь с привилегиями sudo.

Если вы хотите установить Nexus на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Начать

Перед запуском вам нужно будет обновить системные пакеты до последней версии. Вы можете обновить их с помощью следующей команды:

sudo apt-get update -y

Как только сервер будет обновлен, вы можете перейти к следующему шагу.

Установить Java

Nexus основан на Java, поэтому вам необходимо установить Java версии 8 в вашей системе. Вы можете установить его с помощью следующей команды:

sudo apt-get install openjdk-8-jdk -y

После установки Java вы можете проверить установленную версию Java с помощью следующей команды:

java -version

Вы должны получить следующий результат:

openjdk version "1.8.0_282"
 OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
 OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

После установки Java вы можете перейти к следующему шагу.

Установить Нексус

Прежде чем начать, вам нужно будет создать отдельного пользователя для запуска Nexus. Вы можете создать его, выполнив следующую команду:

sudo useradd -M -d /opt/nexus -s /bin/bash -r nexus

Затем он позволяет пользователю нексуса запускать всех пользователей с помощью sudo без пароля. Вы можете сделать это, выполнив следующую команду:

sudo echo "nexus ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nexus

Затем создайте каталог для Nexus с помощью команды mkdir и загрузите последнюю версию Nexus с помощью следующей команды wget:

sudo mkdir /opt/nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar.gz

После завершения загрузки извлеките загруженный файл в каталог /opt/nexus, выполнив следующую команду:

sudo tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1

Затем установите соответствующее свойство для каталога nexus, выполнив следующую команду:

sudo chown -R nexus:nexus /opt/nexus

Затем отредактируйте файл конфигурации nexus.vmoptions и определите максимальный размер памяти в текстовом редакторе:

sudo nano /opt/nexus/bin/nexus.vmoptions

Установите максимальный размер памяти Java и замените ../sonatype-work на ./sonatype-work:

-Xms1024m
 -Xmx1024m
 -XX:MaxDirectMemorySize=1024m

 -XX:LogFile=./sonatype-work/nexus3/log/jvm.log
 -XX:-OmitStackTraceInFastThrow
 -Djava.net.preferIPv4Stack=true
 -Dkaraf.home=.
 -Dkaraf.base=.
 -Dkaraf.etc=etc/karaf
 -Djava.util.logging.config.file=/etc/karaf/java.util.logging.properties
 -Dkaraf.data=./sonatype-work/nexus3
 -Dkaraf.log=./sonatype-work/nexus3/log
 -Djava.io.tmpdir=./sonatype-work/nexus3/tmp

Сохраните и закройте файл, затем отредактируйте файл nexus.rc и определите запуск от имени пользователя:

sudo nano /opt/nexus/bin/nexus.rc

Раскомментируйте и отредактируйте следующую строку с пользователем nexus:

run_as_user="nexus"

Сохраните и закройте файл, затем запустите службу Nexxus с помощью следующей команды:

sudo -u nexus /opt/nexus/bin/nexus start

Затем протестируйте Nexus с помощью следующей команды:

sudo tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log

Вы должны получить следующий результат:

2021-02-22 11:21:51,839+0000 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: registryConfiguratorClass=
 2021-02-22 11:21:51,853+0000 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator - Creating source files for APIs...
 2021-02-22 11:21:52,582+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - JAX-RS RuntimeDelegate: org.sonatype.nexus.siesta.internal.resteasy.SisuResteasyProviderFactory@649a69ca
 2021-02-22 11:21:52,611+0000 INFO [jetty-main-1] *SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory
 2021-02-22 11:21:53,811+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
 2021-02-22 11:21:53,817+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
 2021-02-22 11:21:53,852+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started oejwWebAppContext@7a65358d{Sonatype Nexus,/,file:///opt/nexus/public/,AVAILABLE}
 2021-02-22 11:21:53,883+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@764a4935{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}
 2021-02-22 11:21:53,884+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @37529ms
 2021-02-22 11:21:53,884+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer -
 -------------------------------------------------

 Started Sonatype Nexus OSS 3.29.2-02

 -------------------------------------------------

В этот момент Nexus запущен и прослушивает порт 8081. Вы можете проверить это с помощью следующей команды:

sudo ss -altnp | grep 8081

Вы должны получить следующий результат:

LISTEN 0 50 0.0.0.0:8081 0.0.0.0:* users:(("java",pid=5548,fd=795))

Затем остановите службу Nexus с помощью следующей команды:

sudo /opt/nexus/bin/nexus stop

Создайте служебный файл Systemd для Nexus

Далее вам нужно будет создать файл службы systemd для управления службой Nexus. Вы можете создать его с помощью следующей команды:

sudo nano /etc/systemd/system/nexus.service

Добавьте следующие строки:

[Unit]
 Description=nexus service
 After=network.target

 [Service]
 Type=forking
 LimitNOFILE=65536
 ExecStart=/opt/nexus/bin/nexus start
 ExecStop=/opt/nexus/bin/nexus stop
 User=nexus
 Restart=on-abort

 [Install]
 WantedBy=multi-user.target

Сохраните и закройте файл, затем перезагрузите демон systemd с помощью следующей команды:

sudo systemctl daemon-reload

Затем запустите службу Nexus и включите ее запуск при перезагрузке системы с помощью следующей команды:

sudo systemctl start nexus
sudo systemctl enable nexus

Вы также можете проверить статус службы Nexus с помощью следующей команды:

sudo systemctl status nexus

Вы должны получить следующий результат:

? nexus.service - nexus service
 Loaded: loaded (/etc/systemd/system/nexus.service; disabled; vendor preset: enabled)
 Active: active (running) since Tue 2021-02-22 11:21:49 UTC; 11s ago
 Process: 6181 ExecStart=/opt/nexus/bin/nexus start (code=exited, status=0/SUCCESS)
 Main PID: 6368 (java)
 Tasks: 40 (limit: 4691)
 Memory: 642.9M
 CGroup: /system.slice/nexus.service
 ??6368 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -server -Dinstall4j.jvmDir=/usr/lib/jvm/java-8-openjdk-amd64/jre -Dexe4j.mo>

 Feb 23 12:22:49 ubuntu2004 systemd[1]: Starting nexus service...
 Feb 23 12:22:49 ubuntu2004 nexus[6181]: Starting nexus
 Feb 23 12:22:49 ubuntu2004 systemd[1]: Started nexus service.
 lines 1-13/13 (END)

После этого вы можете перейти к следующему шагу.

Настройте Nginx в качестве обратного прокси-сервера для Nexus.

Далее вам нужно будет установить Nginx и настроить Nginx в качестве обратного прокси. Сначала установите пакеты Nginx с помощью следующей команды:

sudo apt-get install nginx -y

После установки Nginx создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:

sudo nano /etc/nginx/conf.d/nexus.conf

Добавьте следующие строки:

upstream backend {
 server 127.0.0.1:8081;
 }

 server {
 listen 80;
 server_name nexus.example.com;

 location /{
 proxy_pass http://backend/;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 proxy_set_header Host $http_host;

 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forward-Proto http;
 proxy_set_header X-Nginx-Proxy true;

 proxy_redirect off;
 }
 }

Сохраните и закройте файл, затем проверьте файл конфигурации Nginx с помощью следующей команды:

sudo nginx -t

Вы должны получить следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
 nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf: oknginx: проверка файла конфигурации /etc/nginx/nginx.conf прошла успешно

Наконец, перезапустите службу Nginx, чтобы применить изменения:

sudo systemctl restart nginx

Вы также можете проверить статус Nginx с помощью следующей команды:

sudo systemctl status nginx

Вы должны получить следующий результат:

? nginx.service - A high performance web server and a reverse proxy server
 Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
 Active: active (running) since Tue 2021-02-22 11:54:57 UTC; 1s ago
 Docs: man:nginx(8)
 Process: 7106 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Process: 7107 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 7123 (nginx)
 Tasks: 3 (limit: 4691)
 Memory: 3.5M
 CGroup: /system.slice/nginx.service
 ??7123 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
 ??7124 nginx: worker process
 ??7125 nginx: worker process

 Feb 22 11:54:17 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
 Feb 22 11:54:17 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Войдите в веб-интерфейс Nexus

Перед доступом к веб-интерфейсу Nexus введите пароль администратора Nexus с помощью следующей команды:

sudo cat /opt/nexus/sonatype-work/nexus3/admin.password

Вы должны получить следующий результат:

b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e

Теперь откройте веб-браузер и войдите в пользовательский веб-интерфейс Nexus, используя URL-адрес http://nexus.example.com. Вы будете перенаправлены на панель инструментов Nexus.

Теперь нажмите на кнопку Войти. Вы будете перенаправлены на страницу входа в Nexus.

Укажите имя пользователя и пароль администратора и нажмите кнопку « Войти ». Вы должны увидеть страницу конфигурации Nexus.

Нажмите кнопку Далее, чтобы продолжить. Вы должны увидеть страницу смены пароля.

Установите новый пароль и нажмите кнопку Далее. Вы должны увидеть страницу анонимного входа.

Выберите опцию «Включить анонимный доступ» и нажмите кнопку « Далее ». Вы должны увидеть полную страницу конфигурации.

Нажмите кнопку « Готово », чтобы завершить настройку, и щелкните значок шестеренки « Настройки ». Вы должны увидеть панель управления репозиторием Nexus:

Вывод

Поздравляем! вы успешно установили менеджер репозитория Nexus с Nginx в качестве обратного прокси-сервера на сервере Ubuntu 20.04 LTS Focal Fossa.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.