Getting started

This guide gives a new administrator a safe path from a site repository to a deployed EDD core. It does not replace site-specific commissioning: high-rate networking, time distribution, storage, and accelerator access must be tested for the target hardware.

Prerequisites

You need:

  • a site repository containing an inventory and site playbook;

  • Python 3.11 or newer on the deployment host;

  • SSH access, with privilege escalation where required, to managed hosts;

  • a supported container runtime on processing nodes;

  • working name resolution between all EDD hosts;

  • synchronized clocks and access to the site’s reference time;

  • configured data and storage networks; and

  • credentials for encrypted inventory values and any private registries.

Install the deployment tool

edd-tool is provided by EDD core. Install the appropriate EDD core package in a virtual environment to avoid conflicts with system Ansible:

$ python3 -m venv ~/.venvs/edd-tool
$ source ~/.venvs/edd-tool/bin/activate
$ python -m pip install /path/to/edd-core
$ edd-tool --help

The installed command must provide at least deploy and make-devenv. Always inspect edd-tool --help and record the installed EDD core package version before executing a production deployment.

Create a deployment profile

Create ~/.edd-tool.rc to define named deployment profiles and avoid retyping site-critical arguments:

development:
  site_repo: https://git.example.org/observatory/edd_site.git
  version: 2026.1
  inventory: inventories/development
  site_config: site.yml
  vault-pass-file: /secure/edd-development.vault

Paths for inventory and site_config are relative to the checked-out site repository. Protect the vault password file with restrictive filesystem permissions and never commit it.

Deploy and verify

After review, deploy the pinned profile:

$ edd-tool deploy development

deploy always clones the requested site revision into a clean temporary directory and installs its selected collections there. It does not use a local site checkout or a prior collection installation. Deployment logs are stored below ~/.edd/deployment_logs.

For site-repository or collection deployment development, create a persistent environment instead:

$ edd-tool make-devenv ./edd-dev development \
      --site-dir ~/src/edd_site

See Development environments with make-devenv for the generated command reference and the site, plugin, and EDD core development workflows.

Before provisioning an observing mode, verify at least the following:

  1. The Master Controller accepts a KATCP connection and reports unprovisioned.

  2. Redis, InfluxDB, Grafana, and Loki are reachable from their intended networks.

  3. The inventory shown by Ansible contains the expected hosts and groups.

  4. Processing hosts can pull the pinned container images.

  5. Data interfaces, accelerators, storage mounts, NUMA topology, and time synchronization match the inventory.

Continue with Operating an EDD observation to provision an observing mode. For a new site, read Deploying an EDD site, Provisioning and site configuration, and Time and synchronization in full.