Linux VDA implementieren

Veröffentlicht von

Last Updated on 31. Januar 2020 by Sebastian

Eigentlich wollte ich diesen Blog ja mit einem weniger emotionalen Beitrag starten aber leider bleibt mir keine andere Wahl. Ich bin vielleicht etwas blauäugig an dieses Thema gegangen. Obwohl mir eigentlich schon klar war, dass mit einfachem Paket installieren es bestimmt nicht getan ist. Seltsamer Weise stimmt das nicht so ganz aber dazu gleich mehr.

Das Ziel war es unter einer Linux Distribution wie z.B. Ubuntu einen VDA(Virtual Delivery Agent) zu installieren. Ubuntu ist eigentlich immer meine erste Wahl wenn es um Linux Distributionen geht. Ich mag den Paket-manager APT, da ich aus der Debian Ecke komme und dort viel im Bereich Webserver etc. schon gebastet habe bin ich irgendwann bei Ubuntu hängen geblieben. Aber auch CentOS gefällt mir sehr gut und immer wenn ich die Gelegenheit habe etwas zu spielen installiere ich mir die ein oder andere Linux Distribution.

Als Basis für meinen Installationsplan habe ich folgende Citrix Ressource ausgewählt https://docs.citrix.com/en-us/linux-virtual-delivery-agent/current-release/installation-overview/ubuntu.html . Leider zu spät habe ich den Punkt „Easy Install“ gesehen. So habe ich mehrere Stunden damit verbracht in Ubuntu die richtige Hostname reinfolgende unter /etc/hosts zu bearbeiten. Wichtig ist das der FQDN an erster Stelle steht und am besten keine weiteren Einträge die irgendwie mit dem Hostnamen im Zusammenhang stehen. Warum ist das wichtig fragt sich bestimmt der ein oder andere Leser? Ja das Problem das sich aus dieser Situation ergeben hat war das Winbind zwar einen Domainjoin macht aber kein dynamisches DNS hinbekommt. Auch der VDA kann dann die SID wohl nicht richtig aus dem AD auslesen.

Es gibt auch andere Methoden eine Linux Maschine in eine Windows Domäne aufzunehmen. In dem oben verlinkten Beitrag findet ihr alle von Citrix unterstützen Varianten. Aber bei mir war zu diesem Zeitpunkt noch das Level, „Schuster bleib bei deinen Leisten.“ Natürlich müssen auch noch andere Programme installiert werden. Z.b. benötigt der VDA ein Java Developtment Kit, PostgreSQL Datenbank und ganz wichtig ein Zeitsynchronisierungstool. In dem Artikel wird einem Chrony vorgeschlagen. Ich persönlich hab es zwar installiert aber dem Thema Zeit an der stelle etwas weniger Bedeutung beigemessen. Natürlich ist es in einer Produktivumgebung wichtig das die Zeit übereinstimmt mit Active Directory, Delivery Controller etc. aber dies sollte bei einem guten Hypervisor eigentlich auch meist der Fall sein.

Nachdem alle Softwarehürden überstanden waren, das müsste dann auch ungefähr die Zeit gewesen sein wo ich den Punkt „Easy Install“ gefunden habe, ging es an ans einrichten der Verbindung zum Deliverycontroller. Hierzu gibt es unter /opt/Citrix/VDA/sbin/ctxsetup.sh ein Skript das die wichtigsten Parameter abfragt. Leider hat selbst nach einem Reboot der VDA seinen Dienst versagt und die Informationen unter /var/log/xdl/vda.log waren sehr dürftig. Dies führte mich zu dem nächste Skript in diesem Ordner /opt/Citrix/VDA/sbin/ctxcleanup.sh. Dieses Skript bereinigt wohl bestehende Datenbankeinträge sowie bestehende Einträge zu Domainjoins etc. Mir wurde das allerdings erst später klar. Nachdem ich dann auch noch das dritte Skript gefunden habe: /opt/Citrix/VDA/sbin/ctxinstall.sh <- Dieses Skript ist das eigentliche Installationsskript das man ausführen kann wenn man den Easy Install weg nehmen möchte. In diesen Fall muss man mann dann keine Pakete selbst installieren sondern der Installer macht das alles für einen. Auch den Domainjoin übernimmt der Installer für einen. Wichtig ist nur das er einmal den Domänennamen und einmal den NetBIOS ( oder Prä Windows 2000 ) Domänennamen haben möchte.

Fast war es dann geschafft. Nach Anlegen eines Maschinenkataloges ( Server OS ) mit manueller Bereitstellung und einer Bereitstellungsgruppe wartete ich nur darauf endlich loszulegen. Die Maschine registrierte sich aber nicht am Delivery Controller. Also loggte ich mich erneut auf der Maschine ein um die Log zu kontrollieren und seltsameweise stand in der VDA.log das die VM registriert ist. Also wieder zurück in den Deliverycontroller und siehe da die Maschine war registriert. Na vielleicht einfach zu wenig gewartet. Wie sich später rausgestellt hat muss tatsächlich ein Login erfolgen. Den Fehler konnte ich allerdings bisher Heute noch nicht richtig Herr werden. Denn manchmal geht’s und manchmal eben nicht.

Das nächste Problem lies aber nicht lange auf sich warten. Beim ersten Versuch die Session herzustellen wurde das Bild auf der Konsole schwarz sowie auch auf der Citrix Session und nichts passierte. Nach etwas Internetrecherche bin ich auf einen Eintrag im Citrixforum gestossen. Mann sollte folgenden Paket nachinstallieren: apt install xserver-xorg-core Nach einem Reboot und erneutem anmelden sowie versuch eine Citrixsession zu starten war der Bildschirm tatsächlich nicht mehr Schwarz sondern jetzt grau/blau mit einer X11 Dialogbox mit der Meldung „Login Invalid“. Klick man auf OK erhält man die Möglichkeit sein Passwort erneut einzugeben. Dabei ist mir aufgefallen das der Benutzername dem samAccountName entspricht und nicht dem UserPrincipalName den ich beim Login via Citrix Gateway verwende. Was mich nach einiger Recherche dazu geführt hat das Winbind nicht mit UPNs umgehen kann sondern nur mit samAccountName. Da ich aber keine Lust hatte mein komplettes Netscaler Setup durch einen weiteren LDAP Server zu erweitern suchte ich nach einer anderen Lösung.

Nachdem Tag 1 nun schon vollständig mit dem Thema Linux VDA versaut war habe ich an Tag 2 beschlossen alles nochmal neu zu machen inkl. einem anderen Betriebssystem. CentOS 7 sollte es sein in der Minimal Installation + Desktop. Leider musste ich etwas googeln da es dafür keine Fertige Lösung gibt. Für den Fall das jemand mal vor dem gleichen Problem steht hier die Kurzanleitung:

  • yum groupinstall „GNOME Desktop“ „Graphical Administration Tools“
  • unlink /etc/systemd/system/default.target
  • ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
  • reboot

Nachdem das Betriebssystem soweit war habe ich das entsprechende VDA Paket geladen. Wichtig ist das CentOS7 in der neusten Version auch nur mit den neusten VDAs supportet wird(1808 funktioniert z.b. nicht). Ich habe dann den 1912er VDA besorgt obwohl die LAB Umgebung noch 1808 ist. Diesmal genau nach EasyInstall vorgegangen. Als Software zur Domänenanbindung habe ich diesmal SSSD gewählt weil ich gelesen habe das diese mit UPNs klar kommt. Wohl allerdings nicht von Hause aus, weil ich nach der Installation und meinem ersten Test noch den gleichen Fehler hatte wie ein Tag zuvor. Ich habe dann folgenden Citrix Artikel befolgt https://support.citrix.com/article/CTX235006 und die Regular Expression in die sssd.conf eingefügt.

Nun war es soweit. Das erste mal eine Linux Sitzung via Citrix. Im Anschluss habe ich noch einiges an Software installiert auf der VM und habe somit immer eine Linux VM greifbar wenn ich Sie benötige. Als nächstes Plane ich das automatisierte Ausrollen von Linux VMs via MCS und vor allem das alles mit Ubuntu noch zum laufen zu bekommen.

Kommentar hinterlassen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.