Over the course of the last few weeks, I’ve gotten an opportunity to explore building and publishing Linux virtual desktops using Citrix XenDesktop 7.11. Now, I’m no Linux admin/expert which means configuring all this has been challenging at times even with the resources available on the web. Though the Linux VDA will support Red Hat, SUSE, and CentOS, I chose CentOS as my starting point because it’s free in that it does not require additional licensing to use beyond a 60-day demo period.
With that, my starting point for configuring CentOS 7 with XenDesktop 7.11 was the Citrix blog Installing the Linux VDA on Red Hat or CentOS 6. I highly recommend this blog if you are new to Linux and need a launching pad from which to start your own feasibility testing for publishing Linux via Citrix.
Upon completing the installation of the Citrix VDA and executing ctxsetup to customize the VDA, I waited patiently (2 minute of hitting refresh) for the machine to register with the delivery controller but it never did and so commenced my Linux troubleshooting career.
1. On my Linux workstation, I started a terminal session and ran the command service ctxvda status to see if the VDA service was running:
2. So the VDA service failed to start….but why? Next I reviewed the VDA log file to see a reference to Citrix KB article CTX119736:
Sweet!!!! My solution is waiting for me….all I have to do is find the article and my issue will be resolved very shortly and I’ll be accessing my virtual desktop in no time. BUT, if you try and find CTX119736, you’ll likely encounter the following:
3. Though I couldn’t find CTX119736, the more time I spent looking for it, the basic troubleshooting starting points became somewhat clear and really they are not that much different for Windows hosts….check the time, check the network, check name resolution, etc. What I found going through those steps is that the time, the network and name resolution worked from the Linux workstation side, but the delivery controller could not ping the Linux workstation by name. Looking at DNS on the server side revealed that though the workstation retrieved a DHCP address, a host (A) record was not created for it in DNS, thus the delivery controller could not communicate by name. The DHCP scope options were set to dynamically update DNS records for clients that do not request updates.
4. I rebooted the Linux workstation and after doing so, the Citrix VDA service started and it successfully registered with the delivery controller.
I was surprised that a name resolution issue kept the ctxvda service from starting altogether and it was one of the last basic options I checked. I figured that if DNS/name resolution was the issue that the ctxvda service on the Linux workstation would start, but that registration would fail. However, when troubleshooting ctxvda service errors from this point forward, name resolution will be my first test.