Production

This section describes how to deploy DISCOS in a production environment.

The deployment procedure configures target machines via SSH using Ansible.

Command syntax

The deployment is performed using the discos-deploy command:

discos-deploy SYSTEM [options]

where SYSTEM has the form:

<target>:<environment>

<target> can be either a machine name or a cluster name, while <environment> identifies the target inventory.

Deploy the full system

To deploy the full production system for a station:

$ discos-deploy discos:SRT

The discos target identifies the full cluster of machines defined in the selected production inventory.

This command connects to all target machines via SSH and applies the full configuration.

Deploy a single machine

To deploy a single production machine:

$ discos-deploy console:SRT

This command applies the configuration only to the selected machine.

Command line options

The most relevant options for production deployments are:

-b, --branch BRANCH

Deploy the specified DISCOS branch or tag.

-s, --station STATION

Specify the station name.

--deploy-only

Only deploy the DISCOS Control Software.

--test-cdb-only

Only test the DISCOS CDB.

--default-passwords

Use the default passwords for the DISCOS users.

--sim

Print the final Ansible command without executing it.

-v, --verbose

Run Ansible in verbose mode.

Options behavior

In production environments, the station name is implicitly derived from the selected environment. For example:

$ discos-deploy discos:SRT

already implies station SRT.

For this reason, the --station option is normally not required in production. If specified, it must match the environment name.

When using --branch, the station must be defined. In production this usually happens automatically through the selected environment.

The --deploy-only and --test-cdb-only options are mutually exclusive.

The --deploy-only option requires --branch.

DISCOS setup

Manual setup

To install the DISCOS control software manually, use the discos-get command and then build and install the system as described in Get a DISCOS branch and Install DISCOS.

In production environments, it is usually preferable to work on a specific tag.

Automatic setup

The deployment procedure can also install DISCOS automatically:

$ discos-deploy discos:SRT --branch stable

or:

$ discos-deploy discos:SRT --branch discos1.0-rc02

In both cases the deployment procedure will pass the required variables to Ansible and execute the corresponding deployment tasks.

Execution model

The deployment procedure:

  • connects to target machines via SSH

  • applies the Ansible configuration for the selected environment

  • installs system dependencies and DISCOS components

  • configures the runtime environment

All target machines must already be reachable through the network and properly configured for SSH access.