Wie man JFrog Artifactory auf Ubuntu 20.04 LTS installiert

JFrog Artifactory ist eine Open-Source-Repository-Verwaltungsanwendung, die mit Tools zur kontinuierlichen Integration und Bereitstellung integriert werden kann. Es ist ein plattformübergreifendes Tool, das DevOps die Verwaltung mehrerer Paket-Repositorys ermöglicht. Es bietet hohe Verfügbarkeit und Replikation an mehreren Standorten, um Ihre Pipeline zu automatisieren und schnellere Releases zu ermöglichen.

In diesem Tutorial werden wir Ihnen zeigen, wie Sie JFrog Artifactory unter Ubuntu 20.04 installieren.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domain-Name, der auf Ihren Server zeigt.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

JFrog Artifactory installieren

Standardmäßig ist JFrog Artifactory nicht im Standard-Repository von Ubuntu 20.04 verfügbar. Daher müssen Sie das JFrog Artifactory-Repository zu Ihrem System hinzufügen.

Installieren Sie zunächst das Gnupg2-Paket mit dem folgenden Befehl:

apt-get install gnupg2 -y

Als nächstes laden Sie den GPG-Schlüssel herunter und fügen ihn mit folgendem Befehl hinzu:

wget -qO - https://api.bintray.com/orgs/jfrog/keys/gpg/public.key | apt-key add -

Fügen Sie als nächstes das JFrog Artifactory-Repository mit dem folgenden Befehl hinzu:

echo "deb https://jfrog.bintray.com/artifactory-debs bionic main" | tee /etc/apt/sources.list.d/jfrog.list

Sobald das Repository hinzugefügt ist, aktualisieren Sie das Repository und installieren Sie JFrog Artifactory mit folgendem Befehl: Aktualisieren Sie das Repository und installieren Sie JFrog Artifactory:

apt-get update -y
apt-get install jfrog-artifactory-oss -y

Sobald die Installation erfolgreich abgeschlossen ist, sollten Sie die folgende Ausgabe erhalten:

************ SUCCESS ****************
The Installation of Artifactory has completed successfully.

NOTE: It is highly recommended to use Artifactory with an external database (MySQL, Oracle, Microsoft SQL Server, PostgreSQL, MariaDB).
      For details about how to configure the database, refer to https://service.jfrog.org/installer/Configuring+the+Database

Start Artifactory with:
> systemctl start artifactory.service

Check Artifactory status with:
> systemctl status artifactory.service


Installation directory was set to /opt/jfrog/artifactory
You can find more information in the log directory /opt/jfrog/artifactory/var/log
System configuration templates can be found under /opt/jfrog/artifactory/var/etc
Copy any configuration you want to modify from the template to /opt/jfrog/artifactory/var/etc/system.yaml

Triggering migration script, this will migrate if needed ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3) ...

Als nächstes starten Sie den Dienst Artifactory und aktivieren ihn beim Systemneustart mit dem folgenden Befehl:

systemctl start artifactory
systemctl enable artifactory

Als nächstes überprüfen Sie den Status des Artifactory-Dienstes mit dem folgenden Befehl:

systemctl status artifactory

Sie sollten die folgende Ausgabe erhalten:

? artifactory.service - Artifactory service
     Loaded: loaded (/lib/systemd/system/artifactory.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-06-07 12:42:39 UTC; 40s ago
    Process: 15671 ExecStart=/opt/jfrog/artifactory/app/bin/artifactoryManage.sh start (code=exited, status=0/SUCCESS)
   Main PID: 17974 (java)
      Tasks: 0 (limit: 9522)
     Memory: 2.4M
     CGroup: /system.slice/artifactory.service
             ? 17974 /opt/jfrog/artifactory/app/third-party/java/bin/java -Djava.util.logging.config.file=/opt/jfrog/artifactory/app/artifacto>

Jun 07 12:42:38 ubuntu2004 su[18380]: (to artifactory) root on none
Jun 07 12:42:38 ubuntu2004 su[18380]: pam_unix(su:session): session opened for user artifactory by (uid=0)
Jun 07 12:42:38 ubuntu2004 su[18380]: pam_unix(su:session): session closed for user artifactory
Jun 07 12:42:38 ubuntu2004 su[18534]: (to artifactory) root on none
Jun 07 12:42:38 ubuntu2004 su[18534]: pam_unix(su:session): session opened for user artifactory by (uid=0)
Jun 07 12:42:39 ubuntu2004 su[18534]: pam_unix(su:session): session closed for user artifactory
Jun 07 12:42:39 ubuntu2004 su[18655]: (to artifactory) root on none
Jun 07 12:42:39 ubuntu2004 su[18655]: pam_unix(su:session): session opened for user artifactory by (uid=0)
Jun 07 12:42:39 ubuntu2004 su[18655]: pam_unix(su:session): session closed for user artifactory
Jun 07 12:42:39 ubuntu2004 systemd[1]: Started Artifactory service.

Zu diesem Zeitpunkt ist Artifactory installiert und lauscht auf Port 8082. Sie können nun mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Nginx als Reverse-Proxy

Als nächstes müssen Sie Nginx als Reverse-Proxy für JFrog konfigurieren. Installieren Sie zunächst den Nginx-Webserver mit dem folgenden Befehl:

apt-get install nginx -y

Erstellen Sie nach der Installation von Nginx eine neue Nginx-Konfigurationsdatei für den virtuellen Host mit dem folgenden Befehl:

nano /etc/nginx/sites-available/jfrog.conf

Fügen Sie die folgenden Zeilen hinzu:

upstream jfrog {
  server 127.0.0.1:8082 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     jfrog.linuxbuz.com;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://jfrog/;
  }
}

Speichern und schliessen Sie die Datei und aktivieren Sie dann den virtuellen Nginx-Host mit folgendem Befehl:

ln -s /etc/nginx/sites-available/jfrog.conf /etc/nginx/sites-enabled/

Als nächstes überprüfen Sie Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe sehen:

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

Schließlich starten Sie den Nginx-Dienst neu, um die Änderungen zu implementieren:

systemctl restart nginx

An diesem Punkt ist Nginx so konfiguriert, dass es die JFrog-Site bedient. Sie können nun mit dem nächsten Schritt fortfahren.

Sichern Sie JFrog mit Let’s Encrypt SSL

Es wird empfohlen, JFrog mit Let’s Encrypt SSL zu sichern. Fügen Sie zunächst das Certbot-Repository mit dem folgenden Befehl hinzu:

apt-get install software-properties-common -y
add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471

Aktualisieren Sie dann das Repository und installieren Sie den Certbot-Client mit dem folgenden Befehl:

apt-get update -y
apt-get install certbot python3-certbot-nginx -y

Sobald der Certbot-Client installiert ist, führen Sie den folgenden Befehl aus, um Let’s Encrypt SSL für Ihre Website herunterzuladen und zu installieren:

certbot --nginx -d jfrog.linuxbuz.com

Sie werden gebeten, Ihre gültige E-Mail einzugeben und die unten angezeigte Dienstzeit zu akzeptieren:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for jfrog.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/jfrog.conf

Wählen Sie als nächstes, ob HTTP-Verkehr zu HTTPS umgeleitet werden soll oder nicht:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Geben Sie 2 ein und drücken Sie Enter, um den Prozess zu starten. Nach der Installation des Zertifikats sollten Sie die folgende Ausgabe sehen: Ein Server mit Ubuntu 20.04:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/jfrog.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://jfrog.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=jfrog.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/jfrog.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/jfrog.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-09-07. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Zugriff auf Artifactory Web UI

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://jfrog.linuxbuz.com ein. Sie werden auf die folgende Seite umgeleitet:

JFrog Anmeldung

Geben Sie den Standardbenutzernamen als „admin“ und das Passwort als „password“ ein und klicken Sie auf die Schaltfläche Login. Sie sollten die folgende Seite sehen:

Erste Schritte mit JFrog

Klicken Sie nun auf die Schaltfläche Get Started. Sie sollten den Bildschirm zum Zurücksetzen des Passworts sehen:

Ein Administrator-Passwort festlegen

Legen Sie das neue Admin-Passwort fest und klicken Sie auf die Schaltfläche Weiter. Sie sollten den folgenden Bildschirm sehen:

Eine Basis-URL festlegen

Stellen Sie Ihre Basis-URL ein und klicken Sie auf die Schaltfläche Next. Sie sollten den folgenden Bildschirm sehen:

Repositories in JFrog erstellen

Wählen Sie das gewünschte Repository aus und klicken Sie auf die Schaltfläche Next. Sie sollten die folgende Seite sehen:

Installation erfolgreich

Klicken Sie jetzt auf die Schaltfläche Fertig stellen. Auf dem folgenden Bildschirm sollten Sie das Artifactory-Dashboard sehen:

JFrog Dashboard

Schlussfolgerung

In der obigen Anleitung haben wir gelernt, wie man JFrog Artifactory unter Ubuntu 20.04 installiert. Wir haben auch gelernt, wie man JFrog mit Let’s Encrypt SSL sichert. Ich hoffe, dass Sie JFrog jetzt einfach in der Produktionsumgebung installieren können. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Das könnte dich auch interessieren …