Offizielle JFrog Ansible Collection für Artifactory und Xray

Certified JFrog Ansible Collection

Ansible hat sich zu einem der beliebtesten Tools entwickelt, das von Operations-Teams zur Automatisierung ihrer IT-Aufgaben eingesetzt wird. Es ermöglicht ihnen, die Konfiguration ihrer IT-Systeme schnell und im größten Unternehmensmaßstab zu verwalten. Dies umfasst Software und Infrastruktur vor Ort sowie in der Cloud. Seine Open-Source-Wurzeln haben es ermöglicht, eine große globale Community mit einem ebenso expansiven Ökosystem von Integrationen aufzubauen. So gut wie jede Software oder Infrastruktur, die Sie sich vorstellen können, hat ein Ansible-Modul und kann von Ansible verwaltet werden. Die größten Unternehmenskunden von JFrog nutzen Ansible, um Tausende von Servern zu verwalten.

Die offizielle JFrog Ansible Collection ist jetzt im Ansible Galaxy Marketplaceverfügbar und macht es einfach und effizient, JFrog Artifactory und JFrog Xray in Ihren Netzwerken zu verwalten.

Was in der JFrog Ansible Collection enthalten ist

Die Ansible Collection von JFrog enthält mehrere Ansible-Rollen, mit denen Sie die neuesten Artifactory- und Xray-Lösungen in vielen verschiedenen Konfigurationen installieren können. Von einfachen Einzelserver-Installationen bis hin zu redundanten und hochverfügbaren Setups bietet diese Sammlung die passende Flexibilität für jede Architektur. Zusätzlich werden optionale Rollen für eine Postgresql-Datenbank und NGINX bereitgestellt, wenn Sie diese Komponenten hinzufügen möchten. Die in der Sammlung enthaltenen Beispielbestands- und Playbook-Dateien decken die meisten gängigen Anwendungsfälle ab.

Die JFrog Ansible Collection verwenden

Um zu zeigen, wie wir diese Ansible Collection verwenden können, lassen Sie uns einen einfachen Artifactory- und Xray-Cluster installieren, der sich dieselbe Datenbank teilt.

JFrog Ansible Collection

Einrichten mit Ansible und der JFrog Ansible Collection

Zunächst müssen wir Ansible auf unserem Client installieren. Je nach System gibt es verschiedene Möglichkeiten, Ansible zu installieren. Ansible verwendet SSH, um sich mit Hosts zu verbinden. Eine bewährte Methode ist, SSH-Schlüsselpaare einzurichten und den öffentlichen Schlüssel auf den Hosts abzulegen. In der Ansible-Dokumentation wird beschrieben, wie Sie dies tun. Einige Cloud-Anbieter machen dies einfacher, indem sie die SSH-Schlüssel für Sie einrichten.

JFrog Ansible collection

Die JFrog Ansible-Sammlung kann mit dem folgenden Befehl aus der Ansible Galaxy installiert werden:

ansible-galaxy collection install jfrog.installers

Ein Playbook ausführen

Um ein Playbook zur Installation von Artifactory und Xray auszuführen, müssen wir zunächst eine Bestandsdateieinrichten. Die Bestandsdatei spezifiziert unsere Hosts und die für die Installation erforderlichen Variablen. Im Folgenden finden Sie ein Beispiel für eine Bestandsdatei für drei Server. Die database-Gruppe spezifiziert einen einzelnen Datenbank-Host mit zwei Datenbanken: artifactory und xraydb. Die artifactory-Gruppe spezifiziert einen einzelnen Artifactory-Host. Die xray-Gruppe spezifiziert einen einzelnen Xray-Host. Schließlich hat jede Gruppe und jeder Host seine erforderlichen Variablen. Diese Bestandsdatei ist der Input für das Playbook zur Installation unserer Software.

inventory.yml

---
all:
   vars:
       ansible_user: "ubuntu"
   children:
       database:
           hosts:
               34.239.106.0:
                   dbs:
                       - { db_name: "artifactory", db_owner: "artifactory" }
                       - { db_name: "xraydb", db_owner: "xray" }
                   db_users:
                       - { db_user: "artifactory", db_password: "artifactory" }
                       - { db_user: "xray", db_password: "xray" }
       artifactory:
           hosts:
               54.237.206.135:
                   artifactory_license1: x
                   artifactory_license2: x
                   artifactory_license3: x
                   artifactory_license4: x
                   artifactory_license5: x
                   master_key: "c97b862469de0d94fbb7d48130637a5a"
                   join_key: "9bcca98f375c0728d907cc6ee39d4f02"
                   db_download_url: "https://jdbc.postgresql.org/download/postgresql-42.2.12.jar"
                   db_type: "postgresql"
                   db_driver: "org.postgresql.Driver"
                   db_url: "jdbc:postgresql://10.0.0.59:5432/artifactory"
                   db_user: "artifactory"
                   db_password: "Art1fAct0ry"
                   server_name: "ec2-54-237-207-135.compute-1.amazonaws.com"
       xray:
           hosts:
               100.25.106.174:
                   jfrog_url: "https://ec2-54-236-201-125.compute-1.amazonaws.com"
                   master_key: "c97b862469de0d94fbb7d48130637a5a"
                   join_key: "9bcca98f375c0728d907cc6ee39d4f02"
                   db_type: "postgresql"
                   db_driver: "org.postgresql.Driver"
                   db_url: "postgres://10.0.0.59:5432/xraydb?sslmode=disable"
                   db_user: "xray"
                   db_password: "xray"

Unser Playbook ist sehr einfach, da es unsere JFrog-Ansible-Rollen verwendet. Diese Rollen enthalten die Aufgaben, um unsere Software zu installieren. Für unsere database-Gruppe haben wir die postgres-Rolle spezifiziert. Für die artifactory-Gruppe spezifizieren wir die artifactory-Rolle. Für die xray-Gruppe spezifizieren wir die xray-Rolle.

playbook.yml

---
- hosts: database
 roles:
   - postgres

- hosts: artifactory
 roles:
   - artifactory

- hosts: xray
 roles:
   - xray

Jetzt können wir unser Playbook gegen unser Inventory ausführen.

ansible-playbook -i inventory.yml playbook.yml

Damit wird Ansible gestartet, um unsere Software auf allen Servern zu installieren. So einfach ist das.

Dies ist eine sehr einfache Bereitstellung. Allerdings ist es durchaus üblich, Ansible zu verwenden, um Software in einem viel größeren Maßstab mit Hunderten von Servern zu installieren. Ansible führt parallel Automatisierungsaufgaben aus und verwaltet das alles über den Ansible-Client. Diese Art des großflächigen Einsatzes von Servern ist für ein global verteiltes Netzwerk von JFrog Artifactory- und Xray-Servern selbstverständlich. Deshalb ist Ansible ein hervorragendes Werkzeug für die Verwaltung von JFrog-Servern.