vRealize Operations Tenant App for vCloud Director Installation

Die Installation der vRealize Operations Tenant App for vCloud Director kann auf zwei unterschiedliche Arten erfolgen, einmal als Standalone Applikation oder als Plug-In in der VMware vCloud Director 9.0 HTML5 Oberfläche. Die Installation als Plug-In ist die wesentlich komplexere, daher möchte ich sie in diesem Artikel einmal aufzeigen.

In diesem Diagramm sind die einzelnen Komponenten der vRealize Operations Tenant App for vCloud Director als Plug-In sehr gut zu erkennen:

vRealize Operations Tenant App for vCloud Director - port diagram

Quelle: User Guide: vROps for Tenant App for a Service Provider

 

Update – 29.05.2018:

 

A newer Version of the Tenant App Appliance (Version 1.2.0.0) was releases. The new Version supports now VMware vCloud Director 9.1!

But at the moment no Release Notes, Upgrade Guide or a refreshed Deployment Guide have been released.

 

My Upgrade Path:

  1. Unpublish and delete Plugin
  2. Power off old appliance
  3. Deploy new appliance
  4. reconfigure with the same certificate, name and ip (Users are stored on vRealize Operations Manager)
  5. Install and Publish Plugin

New certificate replacement:

The Tenant App Appliance 1.2.0.0 only accepted a pem file with key and cert.

docker cp /certs/app.pem  vvtv:/etc/ssl/app.pem

 

vCloud Director – AMQP Broker

Der AMQP Broker für eine vCloud Director Instanz ist ein Message Broker basieren auf RabbitMQ. Da die VMware Dokumentation in dem Abschnitt Installing and Configuring a RabbitMQ AMQP Broker leider nur auf die ursprüngliche RabbitMQ Dokumentation verweist möchte ich hier direkt etwas tiefer einsteigen

Note:

Dieser Artikel ist nur bedenkenlos auf eine Testumgebung anzuwenden und umfasst nicht alle Sicherheits-, Skalierungs- und Verfügbarkeitsanforderungen einer Produktionsumgebung.

Für den produktiven Setup des AMQP Broker sollte die RabbitMQ Production Checklist unbedingt beachtet werden!

RabbitMQ Betriebssystem

Ich habe mir CentOS 7 x64 als Distribution für die RabbitMQ Anwendung ausgesucht, es gibt aber noch einige andere Betriebssysteme auf der Supported Distributions Liste für RabbitMQ 3.6.3.

Update des Betriebssystems:

yum update

Installation zusätzlicher Pakete:

yum install open-vm-tools net-tools

RabbitMQ Voranforderungen

Die einzige Anhängigkeit von RabbitMQ  ist das Erlang Paket in einer unterstützten Version. Der Install Guide zeigt einige unterschiedliche Wege für die Installation von Erlang auf. Ich habe mich für den schnellsten entschieden: zero dependency Erlang RPM package for running RabbitMQ.

Installation Erlang:

yum install  https://github.com/rabbitmq/erlang-rpm/releases/download/v20.2.2/erlang-20.2.2-1.el7.centos.x86_64.rpm

RabbitMQ Installation

Installation RabbitMQ:

yum install https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.2/rabbitmq-server-3.7.2-1.el7.noarch.rpm

Aktivieren und Starten des RabbitMQ Dienstes:

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

RabbitMQ Konfiguration

Aktivierung des Management Plugin:

rabbitmq-plugins enable rabbitmq_management

systemctl stop rabbitmq-server.service
systemctl start rabbitmq-server.service

rabbitmq.conf:

Für diesen Anwendungsfall ist es nicht zwingen notwendig von der Standardkonfiguration von RabbitMQ abzuweichen. Für spätere Eventualitäten habe ich dennoch eine Kopie des rabbitmq.conf example file mit allen Parametern abgelegt (Pfad zu der Datei: /etc/rabbitmq/rabbitmq.conf ).

Weitere Details zu den Parametern in dem Template File finden sich in der RabbitMQ Configuration Documentation.

Passwort für den Gast-User ändern:

rabbitmqctl change_password guest <A Secret>

Neuen User anlegen (vcloud):

rabbitmqctl add_user vcloud <A Secret>

Administrator Tag für den neuen User setzen:

rabbitmqctl set_user_tags vcloud administrator

dem neuen User Vollzugriff freischalten:

rabbitmqctl set_permissions -p / vcloud ".*" ".*" ".*"

vRealize Operations Tenant App for vCloud Director - AMQP user permissions

Nach der Firewallfreischaltung im nächsten Schritt lassen sich dann auch die Berechtigungen für den User im Webinterface prüfen und verändern.

vRealize Operations Tenant App for vCloud Director - AMQP user permissions in UI

Firewall konfgurieren:

firewall-cmd --zone=public --permanent --add-port=5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --reload

Nach diesem finalen Schritt kann nun auf das Web basierende Management Interface zugegriffen werden  (http://<RabbitMQ IP>:15672) und mit dem neuen User vcloud auch angemeldet werden.

vRealize Operations Tenant App for vCloud Director - management interface

vCloud Director AMQP Broker Einstellungen

Da nun Installation und Einrichtung des RabbitMQ Server abgeschlossen ist, können wir diesen der vCloud Director Instanz hinzufügen.

Da es sich, wie gesagt, um eine Testumgebung handelt habe ich auf eine SSL Verbindung verzichtet. Für den produktiven Einsatz ist diese unbedingt zu empfehlen!

vRealize Operations Manager vCloud Director Adapter

Die Datenquelle für die vRealize Operations Tenant App for vCloud Director ist das vRealize Operations Management Pack for vCloud Director. Daher ist ein entsprechend konfigurierter vCloud Adapter in der Version 4.5 oder neuer auch eine Grundvoraussetzung für die Tenant App.

vRealize Operations Tenant App for vCloud Director – Bereitstellung

Wie bereits dem Diagramm zu Beginn des Artikels zu entnehmen war, stellt die Tennant App eine eigene Instanz dar. Dies ermöglicht es den Zugriff auf die Operation Manager Daten von außen sinnvoll abzusichern, dazu aber später mehr. Die Tennant App Instanz selbst ist eine PhotonOS Appliance mit einem vorkonfigurierten Docker Image welches die Applikation beinhaltet. Das OVA kann als Teil des vCloud Director management pack for vRealize Operations Manager heruntergeladen werden.

OVA Bereitstellung

Die AMQP Broker Einstellungen müssen sich mit denen in der vCloud Director Konfiguration decken, werden aber an dieser Stelle nicht überprüft.

Note:

Für den produktiven Einsatz ist es notwendig für den vCloud Host und den Tenant App Host eine gültige externe URL zu verwenden. Für beide FQDN`s sollte ein gültiges Zertifikat vorhanden sein. Warum dies notwendig ist, werde ich etwas später noch genauer erläutern.

Nach dem ersten Boot der Tenant App Appliance sollte direkt die „Provider Site“ zur Verfügung stehen (https://<Tenant App IP>). Welcher Login-Typen zur Verfügung stehen hängt von der vRealize Operations Manger Konfiguration ab.

vRealize Operations Tenant App for vCloud Director - Provider Login

Mit diesem Interface steht dem Provider eine Art abgespeckte vRealize Operations Manager Oberfläche mit Fokus auf vCloud Director Daten zur Verfügung. Eine mögliche Zielgruppe könnte zum Beispiel der User Helpdesk sein.

Tips zur Fehelersuche

Falls das Provider Interface nicht zur Verfügung steht habe ich hier ein paar grundlegende Diagnoseschritte gesammelt.

Läuft der  Tenant App Docker Container?

vRealize Operations Tenant App for vCloud Director - Docker PS

Falls die Uptime (STATE) des Container sich immer wieder zurück setzt ist das ein Indikator für ein Problem.

Irgendwelche Fehler im Docker Log des Container?

vRealize Operations Tenant App for vCloud Director - Docker Logs

Eine mögliche Fehlerquelle kann zum Beispiel eine verweigerte Verbindung zum AMQP Broker sein.

Ist die Verbindung zum AMQP Broker aufgebaut?

vRealize Operations Tenant App for vCloud Director - AMQP Connections

Ist die Erweiterung im vCloud Director registriert?

Ich habe hier die vcd-cli verwendet um die vrops-vcd Erweiterung zu prüfen (Registrierung wird erst im nächsten Schritt durchgeführt):

vcd system extension info vrops-vcd

vRealize Operations Tenant App for vCloud Director - Extension Info

Tenant App Plug-In Registrierung

Wenn wir die Tenant App nur als Standalone Lösung verwenden möchten, wären wir an diesem Punkt mit der Installation fertig. Für das voll integrierte Plugin-In in der HTML Oberfläche fehlt aber noch ein weiterer Schritt

Die Appliance wird bereits mit einem python Skript für die Registrierung am vCloud Director ausgeliefert:

cd /opt/vmware/plugin/ 
python publish.py -H vcd.mycloudrevolution.com -u 'administrator@system' -p 'admin password'

Tenant App User Guides:

Zugriff auf die vRealize Operations Tenant App for vCloud Director

Nach der erfolgreichen Registrierung können alle Tenant die Erweiterung in dem vCloud Director HTML5 Interface sehen. Um Zugriff darauf zu gewähren, muss der Provider für die Tenants einen eigenen User erstellen oder diesen importieren aus den  vRealize Operations Manager Authentifizierung Quellen. Die importierten User müssen dabei im vRealize Operations Manager selbst keine Rechte haben,

Tenant App Login:

vRealize Operations Tenant App for vCloud Director - Tenant Login

Tenant App Org Summary:

vRealize Operations Tenant App for vCloud Director - Org Details

Tenant App vApp Summary:

vRealize Operations Tenant App for vCloud Director - vApp Details

Tenant App All Metrics:

vRealize Operations Tenant App for vCloud Director - All Metrics

Browser Quellen

Wenn wir unsere Browser Datenquellen überprüfen wenn das Plug-In geladen ist, sehen wir, dass das vRealize Operations Tenant App Plug-In von einer eigenen URL geladen wird – Der zusätzlichen Appliance. Somit ist nun auch klar warum ein zusätzliches Zertifikat benötigt wird.

vRealize Operations Tenant App for vCloud Director - browser sources

Dieses Diagramm soll noch einmal den Zugriff in einem produktiven Aufbau auf die Tenant App aus Sicht des Users verdeutlichen:

vRealize Operations Tenant App for vCloud Director - Data Access Diagram

vRealize Operations Tenant App for vCloud Director API

In den über die vcd-cli geprüften Extension Details war auch die API Erweiterung für die Tenant App zu sehen. Leider könnte ich keine weiteren Informationen zu der API finden. Falls hierzu jemand mehr Infos hat, würde ich mich über einen Kontakt sehr freuen!

Das Einzige was die API für mich geliefert hat ist die URL der Tenant App Appliance:

vRealize Operations Tenant App for vCloud Director - API

2 Comments

  1. Fredrik 26. April 2018
    • Markus Kraus 26. April 2018

Leave a Reply