DEV Community

Berkant
Berkant

Posted on

Nexus 002

Sonatype Nexus ile ilgili ilk yazıya buradan ulaşabilirsiniz.

Bu yazıda aşağıdaki konuları ele alacağız.

  1. Nexus u HTTPS Olarak Çalıştırma
  2. Docker Reposu Ayarlama
  3. Reverse Proxy Yapılandırması
  4. LDAP Bağlantısı

1) Nexus u HTTPS Olarak Çalıştırma

  • Nexus web arayüzü varsayılan olarak 8081/tcp portundan http protokolü ile çalışıyor. Başka bir porttan HTTPS protokolü ile çalışabilmesi için SSL sertifikasına ihtiyacımız var.

  • nexus.pfx (Nexus Web Arayüzü için Kullanacağım SSL Sertifika)
    run > certlm.msc > Personal > All Tasks > Request New Certificate > Web Server Template

Subject Bölümü
Subject Name > Common Name : nexus.alanadı
Subject Name > Common Name : nexus
Alternative Name > DNS : nexus.alanadı
Alternative Name > IP(v4) : serverIP
Private Key Bölümü
Key Options > Make Private Key Exportable

  • Sertifika dosyasını (nexus.pfx) nexus u kurduğum sunucuya atıp keytool komutuyla nexus un kullanabileceği şekle getiriyorum.

keytool -importkeystore -srckeystore nexus.pfx -srcstoretype PKCS12 -destkeystore nexus-jks.jks -deststoretype JKS

!!!keytool komutu için /opt/nexus/jdk/temurin_XYZ/jdk-XYZ/bin/ dizinini kullanabiliriz.

  • Nexus web sunucusu olarak java tabanlı "Eclipse Jetty" kullanıyor.
    /opt/sonatype-work/nexus3/etc/nexus.properties dosyasını aşağıdaki şekilde düzenliyorum(application-port-ssl ve nexus-args satırlarını ekledim)

  • HTTPS protokolü için 9091/tcp portunu kullanacağım.

  • nexus-args bölümünde de http yi devre dışı bırakıp https i kullanacağımızdan jetty-http yerine jetty-https yazıyoruz.

  • /opt/nexus/etc/jetty/jetty-https.xml dosyasında "password" geçen satırları , yukarıda keytool komutuyla girdiğimiz parolayla değiştiriyoruz.

  • /opt/nexus/etc/ssl dizinine daha önceden oluşturduğumuz nexus-jks.jks dosyasını keystore.jks olarak atıyoruz.

2) Docker Reposu Ayarlama

Blob Store Oluşturma

  • Oluşturduğum repoların nereyi ve ne kadar alan kullandığını görebilmek ve yönetebilmek için blob store oluşturuyorum.
  • Oluşturduğum blobstore u da ayrı bir bölüm olarak bağlıyorum (yeni bir lv oluşturup )sunucuma. Bu sayede sadece ilgili reponun blobstore unu büyütüp diğer yerleri etkilemeden devam ediyorum.

Docker Repo Oluşturma

Repository > Repositories > Docker (hosted) seçiyorum. Açılan sayfadan repo ismi , bağlayıcı (connector) , blob store u seçiyorum.

Docker Reposuna Bağlanma

  • **docker login* komutuyla nexus üzerinden çalıştırdığım docker reposuna giriş yapıyorum.
[berkant@ol9gui ~]$ docker login nexus.linux.local:11011
Username: admin
Password: 
....
....
Login Succeeded
Enter fullscreen mode Exit fullscreen mode
  • Sunucuda bulunan d49 numaralı imajı etiketleyip , nexusta barındırdığım docker reposuna yolluyorum.

berkant@ol9gui ~]$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        alpine    d4918ca78576   39 hours ago    52.8MB
nginx        latest    9d0e6f6199dc   40 hours ago    152MB
busybox      latest    08ef35a1c3f0   13 months ago   4.43MB


[berkant@ol9gui ~]$ docker tag nginx:alpine nexus.linux.local:11011/docker/nginx:alpine

[berkant@ol9gui ~]$ docker image ls | grep nexus
nexus.linux.local:11011/docker/nginx   alpine    d4918ca78576   39 hours ago    52.8MB


[berkant@ol9gui ~]$ docker push nexus.linux.local:11011/docker/nginx:alpine
The push refers to repository [nexus.linux.local:11011/docker/nginx]
25906c27b84d: Pushed 
...
...
256f393e029f: Pushed 
alpine: digest: sha256:97a145fb5809fd90ebdf66711f69b97e29ea99da5403c20310dcc425974a14f9 size: 1989
Enter fullscreen mode Exit fullscreen mode
  • Son olarak nexus üzerinde barındırdığımız docker repomuzdan imaj çekmeyi deneyelim.
[berkant@ol9gui ~]$ docker image ls
REPOSITORY                             TAG       IMAGE ID       CREATED         SIZE
nginx                                  alpine    d4918ca78576   40 hours ago    52.8MB
nexus.linux.local:11011/docker/nginx   alpine    d4918ca78576   40 hours ago    52.8MB
....
....

[berkant@ol9gui ~]$ docker image rm d49 --force
Untagged: nginx:alpine
Untagged: nginx@sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14
Untagged: nexus.linux.local:11011/docker/nginx:alpine
Untagged: nexus.linux.local:11011/docker/nginx@sha256:97a145fb5809fd90ebdf66711f69b97e29ea99da5403c20310dcc425974a14f9
Deleted: sha256:d4918ca78576a537caa7b0c043051c8efc1796de33fee8724ee0fff4a1cabed9
Deleted: sha256:88af9f575d6a9fa7b5a16120f2a18f8113bbe9c8345586c40d360ba3042572a1
....
....
[berkant@ol9gui ~]$ docker pull nexus.linux.local:11011/docker/nginx:alpine
alpine: Pulling from docker/nginx
2d35ebdb57d9: Pull complete 
....
....
Digest: sha256:97a145fb5809fd90ebdf66711f69b97e29ea99da5403c20310dcc425974a14f9
Status: Downloaded newer image for nexus.linux.local:11011/docker/nginx:alpine
nexus.linux.local:11011/docker/nginx:alpine

Enter fullscreen mode Exit fullscreen mode

Top comments (0)