chouseknecht.cluster-up-role
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:
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
Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.
ansible-galaxy install chouseknecht.cluster-up-role