debops.nodejs default variables

Global configuration

nodejs__distribution_release

Specify the OS distribution release to use for the upstream APT repositories and other configuration.

nodejs__distribution_release: '{{ ansible_local.core.distribution_release | d(ansible_distribution_release) }}'

Node upstream configuration

nodejs__node_upstream

Enable or disable support for NodeSource APT repositories. On older distribution versions the upstream package will be installed due to no security support.

nodejs__node_upstream: '{{ ansible_local.nodejs.node_upstream
                            | d(nodejs__distribution_release in [ "xenial" ]) | bool }}'
nodejs__node_upstream_release

Specify the Node.js release to install from the NodeSource APT repository. See https://github.com/nodejs/Release for the current release and maintenance shedule. Available releases:

  • node_8.x
  • node_10.x
  • node_12.x
nodejs__node_upstream_release: '{{ "node_8.x"
                                   if (nodejs__distribution_release in
                                       [ "stretch", "trusty",
                                         "xenial", "bionic" ])
                                   else "node_10.x" }}'
nodejs__node_upstream_key_id

GPG fingerprint of APT repository signing key.

nodejs__node_upstream_key_id: '9FD3B784BC1C6FC31A8A0A1C1655A0AB68576280'
nodejs__node_upstream_repository

URL of the NodeSource APT repository in sources.list format.

nodejs__node_upstream_repository: 'deb https://deb.nodesource.com/{{ nodejs__node_upstream_release }} {{ nodejs__distribution_release }} main'

Yarn upstream configuration

nodejs__yarn_upstream

Enable or disable support for Yarn upstream APT repository.

At the moment the yarnpkg package in Debian Buster is broken if Node.js from NodeSource is installed, therefore in that case installation from upstream will be enabled automatically. Ref: https://bugs.debian.org/933229

nodejs__yarn_upstream: '{{ True
                           if nodejs__node_upstream | bool
                           else (ansible_local.nodejs.yarn_upstream
                                  | d(nodejs__distribution_release in
                                    [ "stretch", "xenial", "bionic" ])
                           ) }}'
nodejs__yarn_upstream_key_id

GPG fingerprint of Yarn APT repository signing key.

nodejs__yarn_upstream_key_id: '72ECF46A56B4AD39C907BBB71646B01B86E50310'
nodejs__yarn_upstream_repository

URL of the NodeSource APT repository in sources.list format.

nodejs__yarn_upstream_repository: 'deb https://dl.yarnpkg.com/debian/ stable main'

APT packages

nodejs__remove_packages

List of APT packages to remove before installation of Node.js support.

nodejs__remove_packages:

  # This package collides with the 'yarn' upstream package
  # Ref: https://bugs.debian.org/913997
  - 'cmdtest'

  # Remove the OS release package if Yarn from upstream should be installed
  - '{{ "yarnpkg" if nodejs__yarn_upstream | bool else [] }}'
nodejs__base_packages

List of base APT packages to install.

nodejs__base_packages:
  - 'nodejs'
  - '{{ [] if nodejs__node_upstream | bool else "npm" }}'
  - '{{ "yarn"
        if nodejs__yarn_upstream | bool
        else ([]
              if (nodejs__distribution_release in
                  [ "stretch", "trusty",
                    "xenial", "bionic" ])
              else "yarnpkg") }}'
nodejs__packages

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

nodejs__packages: []
nodejs__group_packages

List of APT packages to install ona group of hosts in Ansible inventory.

nodejs__group_packages: []
nodejs__host_packages

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

nodejs__host_packages: []
nodejs__dependent_packages

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

nodejs__dependent_packages: []

NPM packages

You can use the lists below to install NPM packages. Each element of a list is either a NPM package name, or a YAML dictionary with parameters supported by the npm Ansible module. See that module documentation for list of supported parameters. An example:

nodejs__npm_packages:
  - 'bower'

  - name: 'gulp'
    version: '3'
nodejs__npm_packages

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

nodejs__npm_packages: []
nodejs__npm_group_packages

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

nodejs__npm_group_packages: []
nodejs__npm_host_packages

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

nodejs__npm_host_packages: []
nodejs__npm_dependent_packages

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

nodejs__npm_dependent_packages: []
nodejs__npm_production_mode

If production mode is not specified for an NPM package, the default value set here will be used instead. By default role does no install development dependencies of a given package. You can override this value using item.production parameter.

nodejs__npm_production_mode: True

Configuration for other Ansible roles

nodejs__apt_preferences__dependent_list

Configuration for the debops.apt_preferences Ansible role.

nodejs__apt_preferences__dependent_list:

  - packages: [ 'nodejs', 'nodejs-*', 'node-*', 'libssl1.0.0', 'libssl-dev', 'npm', 'libuv1', 'libuv1-dev' ]
    backports: [ 'stretch' ]
    reason: 'Unsupported NodeJS version, parity with next Debian release'
    by_role: 'debops_nodejs'
    filename: 'debops_nodejs.pref'
    state: '{{ "absent" if nodejs__node_upstream | bool else "present" }}'

  - package: '*'
    pin: 'origin "deb.nodesource.com"'
    priority: '100'
    reason: "Don't upgrade software automatically using packages from external repository"
    role: 'debops.nodejs'
    suffix: '_deb_nodesource_com'
    state: '{{ "present" if nodejs__node_upstream | bool else "absent" }}'

  - packages: [ 'nodejs', 'nodejs-*' ]
    pin: 'origin "deb.nodesource.com"'
    priority: '501'
    reason: 'Prefer nodejs packages from the same repository for consistency'
    role: 'debops.nodejs'
    suffix: '_deb_nodesource_com'
    state: '{{ "present" if nodejs__node_upstream | bool else "absent" }}'
nodejs__keyring__dependent_apt_keys

Configuration for the debops.keyring Ansible role.

nodejs__keyring__dependent_apt_keys:

  - id: '{{ nodejs__node_upstream_key_id }}'
    repo: '{{ nodejs__node_upstream_repository }}'
    state: '{{ "present" if nodejs__node_upstream | bool else "absent" }}'

  - id: '{{ nodejs__yarn_upstream_key_id }}'
    repo: '{{ nodejs__yarn_upstream_repository }}'
    state: '{{ "present" if nodejs__yarn_upstream | bool else "absent" }}'