Nexus repository M贸j Nexus repository zawieraj膮cy skrypty Bash

  1. Oto tutorial wideo

Wymagania wst臋pne

Upewnij si臋, 偶e masz uprawnienia root lub jeste艣 w grupie sudoers przed uruchomieniem skrypt贸w.

Krok 1: Uczy艅 skrypty wykonywalnymi

Najpierw ustaw uprawnienia do wykonywania dla skrypt贸w instalacji i usuwania.

1
2
chmod +x setup_nexus.sh
chmod +x remove_nexus.sh

Krok 2: Uruchom skrypt instalacyjny

Uruchom skrypt instalacyjny z uprawnieniami superu偶ytkownika, aby zainstalowa膰 Nexus i Java.

1
sudo ./setup_nexus.sh

Krok 3: Uruchom skrypt usuwania

Uruchom skrypt usuwania z uprawnieniami superu偶ytkownika, aby odinstalowa膰 Nexus i Java.

1
sudo ./remove_nexus.sh

Skrypt instalacyjny: setup_nexus.sh

Ten skrypt automatyzuje instalacj臋 i konfiguracj臋 Nexus Repository Manager wraz z niezb臋dnym 艣rodowiskiem Java na Debianie 11 i 12.

Co robi skrypt:

  1. Sprawdzenie uprawnie艅 roota: Upewnia si臋, 偶e skrypt jest uruchamiany z uprawnieniami roota.
  2. Instalacja niezb臋dnych pakiet贸w: Instalacja gnupg i dodanie repozytorium Sonatype dla Nexusa.
  3. Dodanie klucza GPG Sonatype: Dodaje klucz GPG dla repozytorium Sonatype.
  4. Aktualizacja listy pakiet贸w: Aktualizuje list臋 pakiet贸w, aby uwzgl臋dni膰 repozytorium Sonatype.
  5. Instalacja Nexusa: Instalacja pakietu Nexus Repository Manager.
  6. Zatrzymanie us艂ugi Nexus: Zatrzymuje us艂ug臋 Nexus, je艣li jest uruchomiona.
  7. Instalacja Java: Pobiera i instalacja BellSoft JDK 8.
  8. Ustawienie uprawnie艅: Ustawia odpowiedni膮 w艂asno艣膰 i uprawnienia dla katalog贸w Nexusa.
  9. Uruchomienie us艂ugi Nexus: Uruchamia us艂ug臋 Nexus.
  10. Instalacja Curl: Instalacja pakietu curl do zapyta艅 HTTP.
  11. Weryfikacja instalacji: U偶ywa curl do sprawdzenia, czy us艂uga Nexus dzia艂a i jest dost臋pna.
  12. Konfiguracja OrientDB: 艁膮czy si臋 z konsol膮 OrientDB, aby zaktualizowa膰 has艂o administratora.
  13. Ponowne ustawienie uprawnie艅: Resetuje w艂asno艣膰 i uprawnienia po skonfigurowaniu OrientDB.
  14. Ponowne uruchomienie us艂ugi Nexus: Ponownie uruchamia us艂ug臋 Nexus.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash

##########################################################################################################
# Autor: Sysadmin                                                                                        #
# mail: admin@sysadmin.info.pl                                                                           #
# U偶ywaj dowolnie                                                                                        #
# Kluczowe punkty:                                                                                       #
# 1. **Sprawdzenie uprawnie艅 roota**: Skrypt weryfikuje, czy jest uruchamiany jako root.                 #
# 2. **Instalacja pakiet贸w**: Instaluje niezb臋dne pakiety, w tym `gnupg` i `curl`.                       #
# 3. **Instalacja Nexus Repository**: Pobiera i instaluje Nexus Repository Manager.                      #
# 4. **Instalacja Java**: Pobiera i instaluje okre艣lon膮 wersj臋 Javy.                                     #
# 5. **Uprawnienia**: Ustawia odpowiedni膮 w艂asno艣膰 i uprawnienia dla katalog贸w Nexusa.                   #
# 6. **Zarz膮dzanie us艂ug膮**: Zatrzymuje i uruchamia us艂ug臋 Nexus w odpowiednich momentach.               #
# 7. **Komendy konsoli OrientDB**: 艁膮czy si臋 z konsol膮 OrientDB, aby zaktualizowa膰 has艂o administratora. #
# 8. **Weryfikacja**: U偶ywa `curl` do sprawdzenia, czy us艂uga Nexus dzia艂a i jest dost臋pna.              #
# Ten skrypt obejmuje proces instalacji i konfiguracji kompleksowo,                                      #
# w tym zarz膮dzanie zale偶no艣ciami i konfiguracj臋 niezb臋dnego 艣rodowiska dla Nexus Repository Manager.    #
##########################################################################################################

echo "Ten szybki instalator wymaga uprawnie艅 roota."
echo "Sprawdzanie..."
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
    echo "Nie uruchomiono jako root"
    exit 0
else
    echo "Instalacja kontynuuje"
fi

SUDO=
if [ "$UID" != "0" ]; then
    if [ -e /usr/bin/sudo -o -e /bin/sudo ]; then
        SUDO=sudo
    else
        echo "*** Ten szybki instalator wymaga uprawnie艅 roota."
        exit 0
    fi
fi

# Instalacja niezb臋dnych pakiet贸w
apt install gnupg gnupg1 gnupg2 -y
wget -P /etc/apt/sources.list.d/ https://repo.sonatype.com/repository/community-hosted/deb/sonatype-community.list
sed -i '1i deb [arch=all trusted=yes] https://repo.sonatype.com/repository/community-apt-hosted/ bionic main' /etc/apt/sources.list.d/sonatype-community.list
sed -i '2s/^/#/' /etc/apt/sources.list.d/sonatype-community.list
wget -q -O - https://repo.sonatype.com/repository/community-hosted/pki/deb-gpg/DEB-GPG-KEY-Sonatype.asc | apt-key add -
apt update && apt install nexus-repository-manager -y

# Zatrzymanie us艂ugi Nexus Repository Manager
systemctl stop nexus-repository-manager.service

# Instalacja Java JDK 8 update 412
wget https://download.bell-sw.com/java/8u412+9/bellsoft-jdk8u412+9-linux-amd64.deb
dpkg -i bellsoft-jdk8u412+9-linux-amd64.deb
apt --fix-broken install -y
dpkg -i bellsoft-jdk8u412+9-linux-amd64.deb

# Ustawienie odpowiedniej w艂asno艣ci i uprawnie艅
chown -R nexus3:nexus3 /opt/sonatype
chmod -R 750 /opt/sonatype

# Uruchomienie us艂ugi Nexus Repository Manager
systemctl start nexus-repository-manager.service

# Instalacja curl
apt install curl -y

# Wyci膮gni臋cie pierwszego adresu IP z `hostname -I` i zapisanie go w zmiennej
IP_ADDRESS=$(hostname -I | awk '{print $1}')

echo "sleep 120 sekund ..."
sleep 120

# U偶ycie zmiennej adresu IP
echo "Adres IP to: $IP_ADDRESS"
curl http://$IP_ADDRESS:8081

# Zatrzymanie us艂ugi Nexus Repository Manager
systemctl stop nexus-repository-manager.service

# Wykonanie komend konsoli OrientDB za pomoc膮 dokumentu here
java -jar /opt/sonatype/nexus3/lib/support/nexus-orient-console.jar <<EOF
connect plocal:/opt/sonatype/sonatype-work/nexus3/db/security admin admin
select * from user where id = "admin"
update user SET password="\$shiro1\$SHA-512\$1024\$NE+wqQq/TmjZMvfI7ENh/g==\$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"
exit
EOF

# Ustawienie odpowiedniej w艂asno艣ci i uprawnie艅
chown -R nexus3:nexus3 /opt/sonatype
chmod -R 750 /opt/sonatype

# Uruchomienie us艂ugi Nexus Repository Manager
system

ctl start nexus-repository-manager.service

# Sprawdzenie log贸w za pomoc膮 poni偶szego polecenia:
# sudo tail -f /opt/sonatype/sonatype-work/nexus3/log/nexus.log

Skrypt usuwania: remove_nexus.sh

Ten skrypt automatyzuje deinstalacj臋 i czyszczenie Nexus Repository Manager oraz 艣rodowiska Java na Debianie 11 i 12.

Co robi skrypt:

  1. Sprawdzenie uprawnie艅 roota: Upewnia si臋, 偶e skrypt jest uruchamiany z uprawnieniami roota.
  2. Zatrzymanie us艂ugi Nexus: Zatrzymuje us艂ug臋 Nexus, je艣li jest uruchomiona.
  3. Wy艂膮czenie us艂ugi Nexus: Wy艂膮cza us艂ug臋 Nexus, aby zapobiec jej uruchamianiu przy starcie systemu.
  4. Usuni臋cie skryptu przed-deinstalacyjnego: R臋cznie usuwa problematyczny skrypt przed-deinstalacyjny, aby unikn膮膰 b艂臋d贸w podczas deinstalacji.
  5. Wymuszenie usuni臋cia pakietu Nexus: Wymusza usuni臋cie pakietu Nexus.
  6. Usuni臋cie katalog贸w Nexus: Usuwa wszystkie katalogi i pliki zwi膮zane z Nexusem.
  7. Usuni臋cie pakiet贸w Java: Usuwa pakiety BellSoft Java i Temurin JDK 8, je艣li s膮 zainstalowane.
  8. Usuni臋cie resztkowych konfiguracji: Usuwa wszelkie pozosta艂e pliki konfiguracyjne dla pakiet贸w Java.
  9. Czyszczenie zale偶no艣ci: Usuwa nieu偶ywane zale偶no艣ci i czy艣ci pliki mened偶era pakiet贸w.
  10. Usuni臋cie u偶ytkownika i grupy Nexus: Opcjonalnie usuwa u偶ytkownika i grup臋 utworzone dla Nexusa.
  11. Ostateczne czyszczenie: Upewnia si臋, 偶e wszystkie pliki konfiguracyjne zosta艂y usuni臋te.
  12. Weryfikacja usuni臋cia: Sprawdza i wymienia wszelkie pozosta艂e pakiety Nexus i Java, aby zweryfikowa膰 ca艂kowite usuni臋cie.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash

echo "Ten deinstalator wymaga uprawnie艅 roota."
echo "Sprawdzanie..."
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
    echo "Nie uruchomiono jako root"
    exit 0
else
    echo "Deinstalacja kontynuuje"
fi

# Zatrzymanie us艂ugi Nexus Repository Manager, je艣li istnieje
if systemctl is-active --quiet nexus-repository-manager.service; then
    systemctl stop nexus-repository-manager.service
fi

# Wy艂膮czenie us艂ugi Nexus Repository Manager, je艣li istnieje
if systemctl is-enabled --quiet nexus-repository-manager.service; then
    systemctl disable nexus-repository-manager.service
fi

# R臋czne usuni臋cie problematycznego skryptu przed-deinstalacyjnego nexus-repository-manager
if [ -e /var/lib/dpkg/info/nexus-repository-manager.prerm ]; then
    mv /var/lib/dpkg/info/nexus-repository-manager.prerm /var/lib/dpkg/info/nexus-repository-manager.prerm.bak
fi

# Wymuszenie usuni臋cia pakietu Nexus Repository Manager
dpkg --remove --force-remove-reinstreq nexus-repository-manager

# Usuni臋cie katalog贸w Nexus
rm -rf /

opt/sonatype
rm -f /etc/systemd/system/nexus-repository-manager.service
rm -f /etc/apt/sources.list.d/sonatype-community.list
rm -rf /var/cache/apt/archives/nexus-repository-manager_*.deb
rm -rf /usr/share/doc/nexus-repository-manager

# Usuni臋cie pakietu BellSoft Java, je艣li jest zainstalowany
if dpkg -l | grep -q bellsoft-java8; then
    dpkg --purge bellsoft-java8 || true
fi

# Usuni臋cie pakietu Temurin JDK 8, je艣li jest zainstalowany
if dpkg -l | grep -q temurin-8-jdk; then
    apt remove --purge temurin-8-jdk -y || true
fi

# Usuni臋cie resztkowych plik贸w konfiguracyjnych
dpkg --purge ca-certificates-java java-common

# Czyszczenie nieu偶ywanych zale偶no艣ci
apt autoremove -y

# Czyszczenie wszelkich pozosta艂ych plik贸w konfiguracyjnych
apt clean

echo "Deinstalacja zako艅czona."

# Opcjonalne usuni臋cie u偶ytkownika i grupy utworzonej dla Nexusa
if id -u nexus3 >/dev/null 2>&1; then
    userdel nexus3
fi

if getent group nexus3 >/dev/null 2>&1; then
    groupdel nexus3
fi

# Usuni臋cie wszelkich pozosta艂ych plik贸w konfiguracyjnych
dpkg --purge nexus-repository-manager ca-certificates-java java-common

# Weryfikacja usuni臋cia
echo "Weryfikacja usuni臋cia pakiet贸w Nexus i Java..."
dpkg -l | grep nexus
dpkg -l | grep java

Uzyskiwanie dost臋pu do Nexusa i konfiguracja repozytorium proxy NPM

Uzyskiwanie dost臋pu do Nexus Repository Manager

  1. Otw贸rz Nexusa w przegl膮darce:

    • Otw贸rz swoj膮 preferowan膮 przegl膮dark臋 internetow膮.
    • W pasku adresu wpisz http://<IP_ADDRESS>:8081 i naci艣nij Enter. Zamie艅 <IP_ADDRESS> na rzeczywisty adres IP swojego serwera Nexus.

    Przyk艂ad:

    1
    
    http://192.168.1.100:8081
    
  2. Zaloguj si臋 do Nexusa:

    • Na stronie logowania u偶yj domy艣lnych danych uwierzytelniaj膮cych:
      • Nazwa u偶ytkownika: admin
      • Has艂o: admin123
    • Kliknij przycisk Sign In.

Zmiana has艂a administratora

  1. Zmie艅 has艂o administratora:
    • Po zalogowaniu kliknij ikon臋 u偶ytkownika w prawym g贸rnym rogu interfejsu.
    • Wybierz Change Password z menu rozwijanego.
    • Wprowad藕 bie偶膮ce has艂o (admin123), a nast臋pnie wprowad藕 i potwierd藕 nowe has艂o.
    • Kliknij przycisk Save, aby zastosowa膰 zmiany.

Wy艂膮czanie dost臋pu anonimowego

  1. Wy艂膮cz dost臋p anonimowy:

    • Z lewego paska bocznego przejd藕 do Security -> Anonymous Access.
    • Odznacz opcj臋 Allow anonymous users to access the server.
    • Kliknij Save, aby zastosowa膰 zmiany.
  2. Wyloguj si臋 i zaloguj ponownie z nowym has艂em:

    • Kliknij ponownie ikon臋 u偶ytkownika w prawym g贸rnym rogu.
    • Wybierz Sign Out z menu rozwijanego.
    • Zaloguj si臋 ponownie, u偶ywaj膮c nowego has艂a administratora ustawionego w poprzednim kroku.

Konfiguracja repozytorium proxy NPM

  1. Skonfiguruj repozytorium proxy NPM:

    • Z lewego paska bocznego przejd藕 do Repositories.
    • Kliknij przycisk Create repository.
    • Wybierz npm (proxy) z listy typ贸w repozytori贸w.
  2. Konfiguracja repozytorium proxy NPM:

    • W polu Name wprowad藕 znacz膮c膮 nazw臋 dla swojego repozytorium (np. npm-proxy).

    • W polu Remote storage wprowad藕 URL rejestru NPM:

      1
      
      http://registry.npmjs.org
      
    • Dostosuj inne ustawienia w razie potrzeby (np. Blob store, Strict Content Validation).

  3. Zapisz konfiguracj臋 repozytorium:

    • Przewi艅 na d贸艂 strony konfiguracji i kliknij przycisk Create repository, aby zapisa膰 nowe repozytorium proxy NPM.

Weryfikacja

  1. Zweryfikuj repozytorium:
    • Przejd藕 do sekcji Repositories, aby upewni膰 si臋, 偶e nowe repozytorium proxy NPM jest wymienione i aktywne.

Podsumowanie polece艅 i konfiguracji

  • Logowanie do Nexusa:

    1
    
    http://<IP_ADDRESS>:8081
    
  • Domy艣lne dane uwierzytelniaj膮ce:

    1
    2
    
    Nazwa u偶ytkownika: admin
    Has艂o: admin123
    
  • **URL rejestru NPM dla repozytorium proxy

:**

1
http://registry.npmjs.org

Post臋puj膮c zgodnie z tymi krokami, powiniene艣 mie膰 udany dost臋p do Nexus Repository Manager, zmieni膰 has艂o administratora, wy艂膮czy膰 dost臋p anonimowy oraz skonfigurowa膰 repozytorium proxy NPM. Teraz jeste艣 gotowy do zarz膮dzania swoimi pakietami NPM za pomoc膮 Nexusa!


Ten tutorial obejmuje ca艂y cykl 偶ycia instalacji, konfiguracji i usuwania Nexus Repository Manager oraz Java na Debianie 11 i 12, a tak偶e konfiguracj臋 i zabezpieczenie 艣rodowiska Nexus.