Quick start
If you have installed the dependencies described in section Dependencies, you are ready to deploy a DISCOS environment.
Clone the repository
Download the DISCOS deployment repository:
$ git clone git@github.com:discos/deployment.git
$ cd deployment
Note
Authentication to GitHub requires a valid SSH key.
Install the package
Install Python dependencies:
$ pip install -r requirements.txt
Install the deployment package:
$ python setup.py install
Alternatively:
$ python setup.py install --user
$ source ~/.bashrc
Deployment model
The deployment procedure is handled by the discos-deploy script.
It uses Ansible to configure a set of target machines. These machines can be:
physical machines
virtual machines
Docker containers
The same procedure is applied in all cases.
Command syntax
The discos-deploy command has the following form:
discos-deploy <target>:<environment> [options]
Where:
<target>is a machine or a cluster<environment>identifies the Ansible inventory
Common options include:
--docker: use Docker containers--no-vagrant: deploy on existing machines--branch/--tag: select DISCOS version--station: required in development environments
Provision a development environment
Docker-based deployment (recommended)
The recommended way to deploy a development environment is using Docker:
$ discos-deploy manager:development --docker
This command will:
create a Docker container
configure networking
inject SSH keys
apply the full Ansible configuration
This approach provides fast and reproducible environments and is suitable for development and testing.
Virtual machine deployment
You can also deploy the environment using virtual machines:
$ discos-deploy manager:development
This will create and provision a virtual machine using Vagrant and VirtualBox.
Note
Virtual machines are kept for compatibility, but Docker is the recommended approach for development.
Physical machines
If you already have a set of machines available, you can deploy DISCOS directly on them:
$ discos-deploy manager:development --no-vagrant
In this case, the machines must be reachable via SSH.
Understanding the command
The argument:
manager:development
means:
manager→ target machine or clusterdevelopment→ environment (Ansible inventory)
The deployment process is idempotent: running the command multiple times will not change the final result, and subsequent runs are usually faster.
Access the system
Once the deployment is complete, access the machine via SSH:
$ ssh discos@<manager IP address>
Alternatively, you can use the discos-login script described in
Useful scripts.
Get a DISCOS branch
After login, no DISCOS branch is active yet:
(branch?) discos@manager ~ $
To download and activate a branch:
$ discos-get master --station SRT
The environment will be configured accordingly.
Install DISCOS
To build and install DISCOS:
$ make
$ make install
Note
The build process may take a long time depending on the system.
Next steps
This quick start covers a minimal development setup.
For more advanced scenarios:
multiple machines → see Development
production systems → see Production