OpenShift – Installation einer online Origin Testplattform

Die Installation einer kompletten OpenShift Plattform ist sehr komplex. Auf docs.openshift.com, bzw. für die nicht kommerzielle Version Origin docs.openshift.org, findet man eine ausfühliche Anleitung für die Installation. Als Anfänger stellt sich aber schnell heraus, dass es nicht so einfach ist eine Testplattform bereit zu stellen. Ich habe verschiedenste Wege getestet und bin auf 2 einfache Möglichkeiten gestoßen. Zum einen kann man mit Hilfe von Minishift eine Offline Lösung bereitstellen, die sich vollautomatisch installieren lässt, und zum anderen kann man mit Hilfe der Strato Server Cloud eine Online Lösung einrichten. Die Online Lösung bietet den Vorteil, dass auch mehrere Leute mit dieser Plattform arbeiten können.

In diesem Beitrag geht es Schritt für Schritt um die Installation einer Origin OpenShift Plattform in der Server Cloud.

Ich habe mich für die Strato Server Cloud entschieden, da ich dort im gegensatz zu den meisten virtuellen Servern von bekannten Anbietern eine Dockerunterstützung habe. Zusätzlich wird der Server Stundengenau abgerechnet und ich kann ihn bei Nichtnutzung ausschalten.

Als erstes müssen wir uns eine Linux VM erstellen. Ich habe mich für CentOS entschieden. Als minimalste Konfiguration benötigen wir 1CPU, 2GB RAM und 20 GB HDD.

Die Einrichtung der VM dauert etwa 1 Stunde. Danach erhält man die Zugangsdaten um sich mit Putty oder Kitty am System anzumelden. In der OpenShift Welt arbeiten wir viel mit DNS Namen. Daher sollte man sich gleich den Server Namen notieren: h268XXXX.stratoserver.net

Nachdem man sich am System angemeldet hat, muss man zunächst das System für die Plattform vorbereiten:

yum update -y
yum install -y wget git net-tools bind-utils iptables-services bridge-utils bash-completion httpd-tools
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y ansible docker python-cryptography pyOpenSSL.x86_64
sed -i '/OPTIONS=.*/c\OPTIONS="--selinux-enabled --insecure-registry 172.30.0.0/16"' /etc/sysconfig/docker
systemctl enable docker
systemctl start docker
git clone https://github.com/openshift/openshift-ansible

Nachdem das System eingerichtet wurde, sollte die Dockerfunktionalität überprüft werden. Hierfür kann man den einachen Befehl „Docker version“ oder „Docker search centos“ eingeben. Bekommt man bei beiden Kommandos ein Ergebnis, sollte der Docker Prozess laufen.

Für die Installation benötigen wir eine passwortlose Anmeldung auf alle Nodes. In unserem Fall haben wir nur einen Node und zwar den Master. Trotzdem baut die Installation eine Verbindung mit sich selber auf. Zum Einrichten bitte folgende Befehle ausführen:

# ssh-keygen

# ssh-copy-id root@h268XXXX.stratoserver.net

Als nächstes muss man das Inventory File für die automatische OpenShift Installation über Ansible erstellen – z.B.: vi inventory.erb

[OSEv3:children]
masters
nodes

[OSEv3:vars]
ansible_ssh_user=root
deployment_type=origin
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}]
containerized=true
openshift_release=v1.5
openshift_image_tag=v1.5.0
openshift_public_hostname=h268XXXX.stratoserver.net
openshift_master_default_subdomain=apps.h268XXXX.stratoserver.net
openshift_hosted_metrics_deploy=false

[masters]
h268XXXX.stratoserver.net openshift_schedulable=true

[nodes]
h268XXXX.stratoserver.net openshift_node_labels="{'region': 'infra', 'zone': 'default'}" openshift_schedulable=true

Nachdem das Inventory angepasst wurde, kann das Ansible Installation-Playbook gestartet werden:

# ansible-playbook -i ~/inventory.erb ~/openshift-ansible/playbooks/byo/config.yml

Nach etwa 20 Minuten ist die Installation durch. Jetzt muss nur noch ein User mit entsprechenden Rechten angelegt werden.

# cd /etc/origin/master

# htpasswd -b htpasswd <user> <password>

# oc adm policy add-cluster-role-to-user cluster-admin <user>

Nun kann man auf die Seite https://h268XXXX.stratoserver.net:8443/console gehen und sich mit dem User anmelden. Unter dem Projekt default müssten jetzt 3 Pods deployed werden: registry-console, docker-registry und der router.
Das Kubernetes ist als Service vorhanden, hat jedoch keinen Pod.

In den nächsten Beiträgen wird es um das Deployen erster Applikationen gehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.