debops.golang default variables

Go UNIX environment

golang__user

Name of an unprivileged UNIX system account which will host the Go build environment.

golang__user: '_golang'
golang__group

Name of the primary UNIX group of the Go UNIX account.

golang__group: '_golang'
golang__home

Absolute path to the home directory of the Go UNIX account.

golang__home: '{{ (ansible_local.fhs.home | d("/var/local"))
                  + "/" + golang__user }}'
golang__shell

The default shell used by the Go UNIX account.

golang__shell: '/usr/sbin/nologin'
golang__comment

The value of the GECOS field of the Go UNIX account.

golang__comment: 'Go build environment'

Go source builds and binaries

golang__apt_dev_packages

List of base APT packages installed when a source build is required.

golang__apt_dev_packages: [ 'golang-go', 'make' ]
golang__env_gopath

The value of the $GOPATH environment variable, which defines a list of directories outside of the current Go environment that contain Go sources and packages, separated by colons.

golang__env_gopath: '{{ golang__home + "/go" }}:/usr/share/gocode'
golang__env_gocache

The value of the $GOCACHE environment variable used during Go builds. This variable specifies the directory which holds the Go build cache.

golang__env_gocache: '{{ golang__home + "/.cache/go" }}'
golang__env_path

The value of the $PATH environment variable used during Go builds. This value allows access to the binaries on the Go UNIX account installed by the go install command, which are usually not needed in the normal host environment.

golang__env_path: '{{ golang__home + "/go/bin:" + ansible_env.PATH }}'
golang__gosrc

Absolute path to the directory where Go application sources will be cloned using the git command, as the unprivileged Go UNIX account.

golang__gosrc: '{{ golang__home + "/go/src" }}'
golang__git_depth

The default depth used to create a "shallow clone" of the git repositories if not specified otherwise, minimum 1. If not specified, entire git repository is cloned.

golang__git_depth: '0'
golang__bin_database

Absolute path to a file which tracks what Go binaries have been installed by the debops.golang role and is used by the Ansible local fact to resolve the paths to preferred binaries.

golang__bin_database: '/usr/local/etc/golang-binaries'

Go packages

The golang__*_packages default variables define what Go packages should be installed by the debops.golang role. See the golang__packages documentation for more details.

golang__default_packages

List of default Go packages to install, defined by the role.

golang__default_packages:

  # The Go environment will be installed if no dependent Go packages are defined
  - name: 'golang-go'
    apt_packages: 'golang-go'
    state: '{{ "ignore" if golang__dependent_packages | d() else "present" }}'
golang__packages

List of Go packages to install on all hosts in Ansible inventory.

golang__packages: []
golang__group_packages

List of Go packages to install on a group of hosts in Ansible inventory.

golang__group_packages: []
golang__host_packages

List of Go packages to install on specific hosts in Ansible inventory.

golang__host_packages: []
golang__dependent_packages

List of Go packages to install specified by other Ansible roles.

golang__dependent_packages: []
golang__combined_packages

List of Go packages which combines all other lists and is used in the role tasks.

golang__combined_packages: '{{ golang__default_packages
                               + golang__dependent_packages
                               + golang__packages
                               + golang__group_packages
                               + golang__host_packages }}'

Configuration for other Ansible roles

golang__keyring__dependent_gpg_user

Configuration for the debops.keyring Ansible role (all GPG keys should be imported into a specific UNIX account keyring).

golang__keyring__dependent_gpg_user: '{{ golang__user }}'
golang__keyring__dependent_gpg_keys

Configuration for the debops.keyring Ansible role (list of GPG keys to import to the keyring).

golang__keyring__dependent_gpg_keys:

  - user:  '{{ golang__user }}'
    group: '{{ golang__group }}'
    home:  '{{ golang__home }}'
    state: '{{ "present"
               if (q("flattened", golang__combined_packages) | debops.debops.parse_kv_items
                   | selectattr("gpg", "defined") | selectattr("state", "equalto", "present")
                   | map(attribute="gpg") | list)
               else "absent" }}'

  - '{{ q("flattened", golang__combined_packages) | debops.debops.parse_kv_items
        | selectattr("gpg", "defined") | selectattr("state", "equalto", "present")
        | map(attribute="gpg") | list }}'
golang__apt_preferences__dependent_list

Configuration for the debops.apt_preferences role.

golang__apt_preferences__dependent_list:

  - packages: [ 'golang', 'golang-*', 'dh-golang' ]
    backports: [ 'stretch', 'buster', 'trusty' ]
    reason: 'Closer feature parity with upstream'
    by_role: 'debops.golang'