chouseknecht.cluster-up-role

Build-Status

cluster-up-role

Installieren Sie den OpenShift-Client und erstellen Sie eine lokale Instanz mit oc cluster up.

Dieses Tool wurde entwickelt, um die Demo- und Testanforderungen von Ansible Container zu unterstützen, indem es die Aufgaben im Installations- und Konfigurationshandbuch für OpenShift automatisiert.

Konkret führt es die folgenden Aufgaben aus:

  • Lädt den oc-Client herunter und installiert ihn
  • Installiert socat, falls auf OSX
  • Fügt einen Hostnamen, der mit Ihrer öffentlichen IP verknüpft ist, zu /etc/hosts hinzu
  • Startet den Cluster
  • Gewährt dem Entwickler-Konto Cluster-Admin-Rechte
  • Erstellt eine Route, um das lokale Registry freizugeben
  • Erstellt ein persistentes Volume
  • Loggt sich mit dem oc-Client als Entwickler in den Cluster ein und setzt das Projekt auf default

Unterstützte Plattformen und Tests

Bisher wurde dieses Tool hauptsächlich auf OSX mit Docker für Mac getestet. Es funktioniert auch fast auf Travis, das eine Ubuntu-Plattform ist. Wenn Sie versuchen, es außerhalb von OSX zu verwenden, werden Sie wahrscheinlich einen Fehler finden. Falls dies der Fall ist, öffnen Sie bitte ein Issue oder senden Sie einen PR, damit wir das Tool auf dem neuesten Stand halten können.

Hostname

Standardmäßig wird der Hostname local.openshift zu Ihrer /etc/hosts-Datei hinzugefügt und mit Ihrer aktuellen IP-Adresse verknüpft. Verwenden Sie den Parameter openshift_hostname, wenn Sie einen anderen Namen bevorzugen.

Wenn der Cluster erstellt wird, wird er mit Ihrer lokalen Netzwerk-IP-Adresse verknüpft. Wenn Sie an einem Laptop oder einem anderen mobilen Gerät arbeiten, müssen Sie den Cluster möglicherweise jedes Mal neu erstellen, wenn Sie in ein neues Netzwerk wechseln. Ein Hostname, der mit Ihrer tatsächlichen IP-Adresse verknüpft ist, erleichtert das Leben etwas.

Unsichere Registry

Wenn Sie die Option für unsichere Registries nicht zu Docker hinzugefügt haben, wird das Tool beim ersten Ausführen einen Fehler verursachen. Es gibt eine Nachricht aus, die Ihnen mitteilt, welches Subnetz hinzugefügt werden muss. Sie müssen auch den Wert openshift_hostname hinzufügen. Standardmäßig ist der Wert local.openshift. Nachdem Sie die Änderung vorgenommen und Docker neu gestartet haben, führen Sie das Tool erneut aus, und diesmal wird es durchlaufen.

Voraussetzungen

Sie müssen Folgendes installiert haben:

  • Docker Engine oder Docker für Mac
  • Sudo-Zugriff, um /etc/hosts zu aktualisieren und die oc-Binary in /usr/local/bin zu installieren.

HINWEIS: Wenn Sie auf einer Linux-Plattform sind, befolgen Sie die Anweisungen zum Erstellen einer Docker-Gruppe, damit Sie docker-Befehle direkt ohne sudo ausführen können.

Beispiel-Playbook

Wenn Sie das Tool ausführen, stellen Sie sicher, dass gather_facts auf einen wahren Wert gesetzt ist. Ohne Fakten kann das Tool die IP-Adresse des Hosts und die OS-Familie nicht bestimmen.

Unten finden Sie ein Beispiel-Playbook, das alle Standardparameter enthält. Dieses exakte Beispiel finden Sie auch in files/cluster-up.yml. Kopieren Sie es und passen Sie es an Ihre Umgebung an.

    ---
    - hosts: localhost
      remote_user: root
      connection: local
      gather_facts: yes
      roles:
        - role: chouseknecht.cluster-up-role
          openshift_github_user: openshift
          openshift_github_name: origin
          openshift_github_url: https://api.github.com/repos
          openshift_release_tag_name: ""
          openshift_client_dest: /usr/local/bin  
          openshift_force_client_install: yes
          openshift_volume_name: project-data
          openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"
          openshift_hostname: local.openshift
          openshift_recreate: yes

Nachdem Sie das Tool installiert haben, kopieren Sie file/cluster-up.yml in Ihr Projektverzeichnis und führen Sie es mit der Option --ask-sudo-pass aus. Hier ist ein Beispiel, wie das aussehen könnte:

# Installieren Sie das Tool 
$ ansible-galaxy install chouseknecht.cluster-up-role

# Kopieren Sie das Playbook von Ihrem Rollenpfad in das aktuelle Arbeitsverzeichnis 
$ cp ${ANSIBLE_ROLES_PATH}/chouseknecht.cluster-up-role/files/cluster-up.yml .

# Erstellen Sie eine localhost-Inventardatei
$ echo "localhost">./inventory

# Führen Sie das Playbook aus
$ ansible-playbook -i inventory --ask-sudo-pass cluster-up.yml

Bereitstellung Ihres Ansible Container-Projekts

Im folgenden Beispiel erstellen wir ein neues Projekt, installieren die Container-fähige Rolle jenkins-container, und setzen den Jenkins-Dienst in unserem lokalen OpenShift-Cluster ein.

HINWEIS: Um dieses Beispiel auszuführen, müssen Sie Ansible Container 0.3.0 installiert haben. Siehe Installation aus dem Quellcode, wenn Sie Hilfe benötigen.

# Erstellen Sie einen neuen Projektordner
$ mkdir jenkins

# Setzen Sie das Arbeitsverzeichnis
$ cd jenkins

# Projekt initialisieren
$ ansible-container init

# Installieren Sie die jenkins-container-Rolle
$ ansible-container install awasilyev.jenkins-container

# Bilder bauen
$ ansible-container build

# Generieren Sie das Bereitstellungs-Playbook und die Rolle
$ ansible-container shipit openshift --local-images

# Setzen Sie das Arbeitsverzeichnis auf ansible
$ cd ansible

# Führen Sie das shipit-Playbook aus
$ ansible-playbook shipit-openshift.yml

Oben wurde ein neues Projekt auf OpenShift mit dem Namen jenkins erstellt. Um das Projekt anzuzeigen, melden Sie sich in der OpenShift-Konsole an, indem Sie https://local.openshift:8443/console öffnen. Der Benutzername ist developer, und das Passwort ist developer. Klicken Sie auf jenkins, um die Projektübersicht anzuzeigen.

Klicken Sie auf das folgende Bild, um ein Video zur Bereitstellung des Jenkins-Dienstes anzusehen:

Jenkins bereitstellen

Rollenvariablen

Verwenden Sie die folgenden Variablen, um das Verhalten des Tools anzupassen:

openshift_github_user: openshift

Der Besitzer des GitHub-Repos, in dem die Download-Ziele für den oc-Client zu finden sind

openshift_github_name: origin

Der Name des GitHub-Repos

openshift_github_url: https://api.github.com/repos

Der GitHub-API-Endpunkt, der verwendet werden soll.

openshift_release_tag_name: ""

Der Tag für die gewünschte Version der oc-Binary. Wenn nicht angegeben, wird die neueste Version installiert.

openshift_client_dest: /usr/local/bin

Das Verzeichnis, in dem oc installiert wird. Muss sich in Ihrem PATH befinden.

openshift_force_client_install: yes

Falls die oc-Binary bereits existiert, soll sie überschrieben werden?

openshift_volume_name: project-data

Name des Volumes.

openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"

Ein lokaler Pfad, wo Platz für das neue Volume reserviert wird.

openshift_hostname: local.openshift

Der Hostname, den Sie verwenden werden, um das lokale Registry anzusprechen, sobald Sie bereit sind, Images hochzuladen.

openshift_recreate: yes

Wenn ein Cluster bereits läuft, soll es beendet und neu erstellt werden?

openshift_up_options: ''

Fügen Sie alle Optionen hinzu, die Sie an oc cluster up weitergeben möchten. Trennen Sie mehrere Optionen mit einem Leerzeichen, so wie Sie es in der Befehlszeile tun würden.

Abhängigkeiten

Keine

Lizenz

Apache v2

Autor

@chouseknecht

Über das Projekt

Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.

Installieren
ansible-galaxy install chouseknecht.cluster-up-role
GitHub Repository
Lizenz
apache-2.0
Downloads
159
Besitzer
Ansible Galaxy Engineering Manager