GuillaumeSmaha.gluu-setup

Ansible Gluu: Einrichtung Rolle

gluu-setup ist eine Ansible-Rolle, um einen Gluu-Server, seine Module und das Zertifikat einfach zu installieren.

Im Cluster-Modus wird die Rolle den SSH-Schlüssel installieren, um den Zugriff durch den Cluster-Manager zu ermöglichen, öffentliche Zertifikate zwischen allen Servern zu verteilen, den LDAP-Server zu aktualisieren, um externe Verbindungen zu akzeptieren, und die Konfiguration zu aktualisieren, um alle LDAP-Server zu verwenden.

Um die Funktionen des Cluster-Modus in dieser Rolle zu nutzen, müssen alle Gluu-Server in der Gruppe gluu-servers sein und der Gluu-Cluster-Manager muss in der Gruppe gluu-cluster-manager sein.

Geschichte

Der Open-Source-Authentifizierungs- und API-Zugriffsmanagement-Server von Gluu ermöglicht es Organisationen, Single Sign-On, starke Authentifizierung und Zentralisierung anzubieten.

Anforderungen

Um bereitzustellen, benötigen Sie:

  • Ansible auf Ihrer Bereitstellungsmaschine
  • Zusätzlich müssen Sie diese Python-Abhängigkeit installieren:
    • dnspython
$ pip install -r requirements.txt

Installation

gluu-setup ist eine Ansible-Rolle, die weltweit über Ansible Galaxy verteilt wird. Um die Rolle gluu-setup zu installieren, können Sie den folgenden Befehl verwenden.

$ ansible-galaxy install GuillaumeSmaha.gluu-setup

Aktualisierung

Wenn Sie die Rolle aktualisieren möchten, müssen Sie beim Installieren den Parameter --force angeben. Bitte überprüfen Sie den folgenden Befehl:

$ ansible-galaxy install --force GuillaumeSmaha.gluu-setup

Rollen-Variablen

vars:

  # ===================================
  # Gluu auf einem einzelnen Knoten
  # ===================================

  # Definieren Sie eine benutzerdefinierte Version des zu installierenden Pakets.
  # Um eine Liste der verfügbaren Paketversionen zu erhalten, besuchen Sie: https://gluu.org/docs/ce/
  gluu_version: 3.1.7

  # Definieren Sie den Hostnamen, der von Gluu verwendet wird.
  gluu_hostname: '{{ ansible_ssh_host }}'

  # IP-Adresse des Hosts.
  gluu_ip: '{{ lookup("dig", "{{ gluu_internal_hostname }}.") | regex_replace("^NXDOMAIN$", "") | default(gluu_internal_hostname, true) }}'

  # Liste der zu installierenden Module
  gluu_modules:
  - oxauth
  - oxtrust
  - ldap
  - httpd
  # Verfügbare Module:
  # - download_wars # Zwingt zum Herunterladen von WAR-Dateien
  # - oxauth
  # - oxtrust
  # - ldap
  # - httpd
  # - saml
  # - asimba
  # - cas
  # - oxauth-rp
  # - passport
  # - jce

  # Wörterbuch der Zertifikate für Gluu.
  # Sie können den Schlüssel hinzufügen, den Sie möchten.
  # Jeder Schlüssel muss den Schlüssel `publicKey` und optional den Schlüssel `privateKey` mit dem Pfad zu den Zertifikatsdateien enthalten.
  # Wenn gluu_cluster = True, können Sie den Parameter `shareable` festlegen, um den öffentlichen Schlüssel in allen anderen Gluu-Servern zu kopieren.
  # Liste der offiziellen Schlüssel für Gluu:
  #   - asimba
  #   - httpd
  #   - idp-encryption
  #   - idp-signing
  #   - openldap
  #   - shipIDP
  # Beispiel:
  #  gluu_certificates:
  #    idp-signing:
  #      publicKey: "{{ playbook_dir }}/templates/{{ inventory_dir | basename }}/certificates/idp-signing.crt"
  #      privateKey: "{{ playbook_dir }}/templates/{{ inventory_dir | basename }}/certificates/idp-signing.key"
  gluu_certificates:

  # Typ des LDAP-Servers
  # Seit Gluu 3.1.2 können Sie den Typ des LDAP-Servers auswählen.
  # Dieses Skript unterstützt nur openLDAP für die LDAP-Replikation.
  # Verfügbare LDAP-Server:
  # - openldap
  # - opendj
  # Standard: openldap
  gluu_ldap_server: openldap

  # Benutzerdefiniertes Zertifikat für LDAP-Server & Client
  # Gluu oxAuth/oxTrust-Client benötigt eine PKCS12-Datei mit privatem und öffentlichem Schlüssel.
  # Standard:
  gluu_ldap_certificate:
    cert_ca_file:
    cert_file:
    cert_key_file:

  # Datei zur Anpassung des LDAP-Schemas
  gluu_ldap_custom_schema_file: custom_schema.json.default

  # Sie können das LDAP-Passwort festlegen.
  # Standard: Zufälliges Passwort
  gluu_ldap_password:

  # Basis-Inum von Gluu
  # Inums in Gluu sind in 3 Teile unterteilt:
  # - Basis
  # - Elterntyp für Organisation oder Gerät
  # - Elternwert für Organisation oder Gerät
  # - Typ (nur für Organisation)
  # - Wert (nur für Organisation)
  # Beispiel: @!0000.1111.2222.3333!0001!1111.2222!0000!1111.2222 kann so aufgeteilt werden:
  # - Basis: @!0000.1111.2222.3333
  # - Elterntyp: !0001!
  # - Elternwert: 1111.2222
  # - Typ: !0000!
  # - Wert: 1111.2222
  # Sie finden jeden Typ in der Dokumentation von Gluu: https://gluu.org/docs/ce/api-guide/api/
  # Standard: Zufälliger Wert
  gluu_inum_base:

  # Organisations-Inum
  # Der Wert muss den Wert von gluu_inum_base enthalten!
  # Beispiel: gluu_inum_org: "{{ gluu_inum_base }}!0001!1111.2222"
  # Standard: Zufälliger Wert
  gluu_inum_org:

  # Geräte-Inum
  # Der Wert muss den Wert von gluu_inum_base enthalten!
  # Beispiel: gluu_inum_appliance: "{{ gluu_inum_base }}!0002!1111.2222"
  # Standard: Zufälliger Wert
  gluu_inum_appliance:

  # Eigenschaften für die selbstgenerierten Zertifikate (selbstsigniert)
  gluu_certificate_properties:
    org_name: Organisation
    country_code: DE
    city: München
    state: BY

  # ===================================
  # Gluu auf mehreren Knoten (Cluster)
  # ===================================

  # Definieren Sie, ob der Server in einem Cluster ist.
  # Wenn gluu_cluster = True und wenn Sie einen Cluster-Manager in der Gruppe "gluu-cluster-manager" installiert haben; dann wird der SSH-Öffentliche Schlüssel des Cluster-Managers auf jeden Gluu-Server kopiert.
  gluu_cluster: False

  # Nur wenn gluu_cluster = True.
  # Zweck dieses Parameters ist es, den internen Hostnamen und den externen Hostnamen (gluu_hostname) zu unterscheiden.
  # Der externe Hostname wird von außen aufgerufen und ist ein Lastenausgleich, wie z.B. nginx. Alle Gluu-Server werden mit dem externen Hostnamen eingerichtet.
  # Aber um alle Knoten des Clusters mit den LDAP-Servern zu verbinden, benötigt es einen internen Hostnamen, der nicht den externen Hostnamen aufruft.
  # Standardmäßig ist er gleich gluu_hostname
  gluu_internal_hostname: '{{ gluu_hostname }}'

  # Wenn gluu_cluster = True, definieren Sie, ob es mehrere LDAP-Server mit Replikation gibt.
  gluu_cluster_ldap_replication: False

  # Wenn gluu_cluster = True und gluu_cluster_ldap_replication = True, definieren Sie, ob die LDAP-Konfiguration von Ansible oder mit der Web-GUI des Cluster-Managers eingerichtet wird.
  # Bei gluu_cluster_ldap_replication = False ermöglicht dieser Parameter die Konfiguration EXTRA_SLAPD_ARGS="-F /opt/symas/etc/openldap/slapd.d".
  # Bei gluu_cluster_ldap_replication = True wird die slapd.conf-Datei bearbeitet, um die Replikation zwischen allen Servern mit dem LDAP-Modul einzustellen.
  gluu_cluster_ldap_replication_without_cluster_manager: False

  # Wenn gluu_cluster = True, erlaubt dieser Parameter, als Standardkonfiguration eine andere Hostkonfiguration festzulegen.
  # Um es zu verwenden, müssen Sie auf die Ausführungsreihenfolge von Ansible für jeden Host achten.
  # Der Inhalt der Datei /opt/gluu-server-{{ gluu_version }}/install//community-edition-setup/setup.properties.last des definierten Hosts wird in die setup.properties kopiert.
  # Ein Beispiel nach der Installation erlaubt es, einen Spiegelserver mit denselben Konfigurationen wie der Hauptserver zu erstellen.
  gluu_install_from: main

  # Wenn gluu_cluster = True, können Sie die Hostnamen der externen LDAP-Server von Gluu festlegen.
  # Standardmäßig Liste aller Server mit dem LDAP-Modul installiert.
  # Ein einfaches Verbraucher-Server, das nur mit dem oxauth-Modul installiert ist, verwendet dieses Parameter mit den Hostnamen der beiden Hauptserver.
  # Beispiel:
  #   gluu_ldap_hostname: 192.168.1.101:1636,192.168.1.102:1636
  gluu_ldap_hostname:

Bereitstellung

Um zu deployen, müssen Sie einige Schritte durchführen:

  • Erstellen Sie eine neue hosts-Datei. Überprüfen Sie die Ansible-Inventardokumentation, wenn Sie Hilfe benötigen.
  • Erstellen Sie ein neues Playbook für die Bereitstellung Ihrer App, z.B. deploy.yml
  • Richten Sie die Rollenvariablen ein (siehe Rollen-Variablen)
  • Schließen Sie die Rolle GuillaumeSmaha.gluu-setup als Teil eines Plays ein
  • Führen Sie das Bereitstellungs-Playbook aus

ansible-playbook -i hosts deploy.yml

Wenn alles korrekt eingerichtet ist, installiert dieser Befehl den Gluu-Cluster-Manager auf dem Host.

Beispiel-Playbook

Im Ordner Beispiel können Sie ein Beispielprojekt überprüfen, das zeigt, wie man bereitstellt.

Um es auszuführen, müssen Sie Vagrant und die Rolle installiert haben. Bitte überprüfen Sie https://www.vagrantup.com für weitere Informationen über Vagrant und unseren Installationsbereich.

$ cd example
$ vagrant plugin install vagrant-lxc
$ vagrant plugin install vagrant-hostmanager
$ vagrant up --provider=lxc
$ ansible-galaxy install GuillaumeSmaha.gluu-setup
$ ansible-playbook -i env/ubuntu deploy.yml
$ ansible-playbook -i env/centos deploy.yml

Zugriff auf Gluu erhalten Sie über:

https://gluu-setup-ubuntu/

oder

https://gluu-setup-centos/

Beispielprojekte

Sie finden ein vollständiges Beispiel eines Playbooks hier:

https://github.com/GuillaumeSmaha/ansible-gluu-playbook

Über das Projekt

Gluu Setup for RHEL/CentOS and Ubuntu

Installieren
ansible-galaxy install GuillaumeSmaha.gluu-setup
GitHub Repository
Lizenz
gpl-3.0
Downloads
205
Besitzer