Using Ansible for automated thin client deployment

I’ve written about how the best thin client may be free, but it does require a lot of manual steps.  For one workstation, not a problem, but how does that scale out to 5, 10, or 50 workstations?  To simplify this, I created an Ansible playbook that configures a clean Fedora 25 workstation as a locked down thin client.  All of the following is configured automatically via SSH using Ansible:

  • Automatically retrieves, builds if necessary, and installs all dependencies for the 64-bit Horizon View client for Linux.
  • Automatically downloads the Horizon View client from a specified URL
  • Installs the Horizon View client silently using a shell script
  • Applies the latest updates to all installed packages
  • Customizes GNOME
    • Disables selinux
    • Enables autologon for the local user account
    • Disables desktop notifications
    • Disables lock screen
  • Deploys a script that ensures the Horizon client is constantly running and will restart the workstation if it is not running.
  • Deploys a startup entry to load the script described above
  • Adds an autostart desktop entry that launches the Horizon View client. Variables that can be changed include:
    • Connection Server or Unified Access Gateway URL
    • Desktop Pool name
    • Startup delay time
  • Reboots the workstation to complete the new thin client setup

The post-deployment benefit to using Ansible?  Workstation updates are simpler and faster.  Here are a couple of scenarios that this playbook solves:

  • The Horizon View client needs an update.  Just update two variables in the playbook configuration and re-run the playbook.
  • The connection server changed in your environment.  Just change the client_server_url variable to reflect the new hostname and re-run the playbook.
  • Users are migrating from a Windows 7 VM to a Windows 10 VM.  Update the client_desktop_name variable and re-run the playbook.
  • A security vulnerability needs to be patched on all thin clients.  Just re-run the playbook.  It will use yum to update all packags to the latest version.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s