Development

This section describes how to deploy a DISCOS development environment.

The development environment currently consists of a single machine:

  • manager

Even though the deployment system supports multiple machines and clusters, the development setup is intentionally minimal.

Command syntax

discos-deploy <target>:<environment> [options]

In development environments, the --station option is required when deploying DISCOS software.

Deploy the development machine

To deploy the development environment:

Virtual machine deployment

$ discos-deploy manager:development

This will create and provision a virtual machine using Vagrant.

Existing machines

If the target machine already exists (physical or virtual), you can deploy directly onto it:

$ discos-deploy manager:development --no-vagrant

The machine must be reachable via SSH.

Notes on clusters

The deployment system supports clusters of machines through Ansible inventories.

In the development environment, however, only the manager machine is defined.

For multi-machine deployments, refer to Production.

What happens during deployment

The deployment procedure:

  • connects to the target machine via SSH

  • configures users and permissions

  • installs system dependencies

  • configures networking and services

  • installs ACS and DISCOS dependencies

The process is idempotent: running it multiple times produces the same result.

DISCOS setup

Manual setup

To download the DISCOS control software:

$ discos-get master --station SRT

Then build and install:

$ make
$ make install

Automatic setup

The deployment procedure can also install DISCOS automatically:

$ discos-deploy manager:development --branch discos1.0-rc02 --station Noto

This will:

  • download the specified branch or tag

  • configure the environment

  • prepare the system for building

The --station argument is required in development environments, since machines are generic and not tied to a specific station.

Notes

  • Docker is the recommended approach for development environments

  • Virtual machines are supported for compatibility

  • Physical machines can always be used if already available