Getting started

Example inventory

To setup and manage the X2Go server, add the hosts to the debops_service_x2go_server Ansible inventory host group:

[debops_service_x2go_server]
hostname

If you are using debops.sshd for configuring your OpenSSH server, you will need to adopt some of the defaults of this role to allow X2Go clients to connect to the X2Go server via SSH. The recommended way to do those adoptions is to symlink the docs/inventory/debops_service_x2go_server_global_role_vars file shipped with this role into your inventory under ansible/inventory/group_vars/debops_service_x2go_server_global_role_vars and include all hosts from the debops_service_x2go_server in the debops_service_x2go_server_global_role_vars host group by adding this:

[debops_service_x2go_server_global_role_vars:children]
debops_service_x2go_server

into your host inventory which makes the following adjustments to the defaults variables of other roles:

---
# .. vim: foldmarker=[[[,]]]:foldmethod=marker

# Required configuration for debops.sshd [[[

# Require the following cryptography methods as X2Go seems to only support a
# subset of which OpenSSH does support.
sshd__ciphers_additional: '{{ [ "aes256-ctr" ] if (x2go_server__deploy_state|d("present") == "present") else [] }}'
sshd__kex_algorithms_additional: '{{ [ "curve25519-sha256@libssh.org" ] if (x2go_server__deploy_state|d("present") == "present") else [] }}'
sshd__macs_additional: '{{ [ "hmac-sha1" ] if (x2go_server__deploy_state|d("present") == "present") else [] }}'

# ]]]

# Optional configuration for debops.sshd [[[

# Enabled for performance reasons. X11 forwarding over SSH is not directly used.
# http://wiki.x2go.org/doku.php/doc:faq:start#why_am_i_told_to_enable_x11_forwarding_with_x2go_i_thought_that_x2go_uses_nx-libs_instead_of_x11_forwarding
# https://www.nomachine.com/AR05D00391
sshd__x11_forwarding: 'yes'

# ]]]

Example playbook

Here's an example playbook that can be used to setup and manage X2Go server:

---

- name: Setup and manage the server-side of X2Go
  hosts: [ 'debops_service_x2go_server' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'

  roles:

    - role: debops-contrib.x2go_server
      tags: [ 'role::x2go_server' ]

This playbooks is shipped with this role under docs/playbooks/x2go_server.yml from which you can symlink it to your playbook directory. In case you use multiple DebOps Contrib roles, consider using the DebOps Contrib playbooks.

Ansible tags

You can use Ansible --tags or --skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after a host was first configured to speed up playbook execution, when you are sure that most of the configuration is already in the desired state.

Available role tags:

role::x2go_server
Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.