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:
Quelle: User Guide: vROps for Tenant App for a Service Provider
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
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 ".*" ".*" ".*"
Nach der Firewallfreischaltung im nächsten Schritt lassen sich dann auch die Berechtigungen für den User im Webinterface prüfen und verändern.
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.
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.
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.
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?
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?
Eine mögliche Fehlerquelle kann zum Beispiel eine verweigerte Verbindung zum AMQP Broker sein.
Ist die Verbindung zum AMQP Broker aufgebaut?
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
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 '[email protected]' -p 'admin password'
Tenant App User Guides:
- User Guide: vROps for Tenant App for a Tenant Admin
- User Guide: vROps for Tenant App for a Service Provider
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:
Tenant App Org Summary:
Tenant App vApp Summary:
Tenant App 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.
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 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:
Hello!
I am looking to user the vcloud plugin or tenant app for vrops to create a report for one or more organizations. I am not sure if this is possible with vrops, but I want to create a report which lists a users direct reports vApps and what resources they consume.
From what I have seen there is no user object available in the vcd plugin for vrops, do you have any other experience?
Hello Fredrik,
Thats a great use case for vRops itself. Have you already seen the vCAT SP for vRops multi tenancy?
What means User object? I think a property Owner should be Available on vApp Level, but I need to verify that.