Skip to main content

EDD deployment and plugin management tool

Project description

EDD Tool

edd-tool is a command-line utility for deploying and managing EDD (Effelsberg Direct Digitisation) backend instances.
It automates cloning site repositories, resolving variables from Ansible inventories, installing plugins, and running playbooks.

Purpose

The edd-tool simplifies the deployment of EDD site repositories managing the docker update cycle and plugin installation phases of an EDD backend deployment.

Installation

It is strongly recommended to install and run edd-tool inside a Python virtual environment to avoid dependency conflicts.

# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install from PyPI
pip install edd-tool

You can verify the installation with:

edd-tool --help

Basic usage

$ edd-tool deploy --h
usage: edd-tool deploy [-h] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--site-repo SITE_REPO] [--version VERSION]
                       [--deploy-dir DEPLOY_DIR] [--inventory INVENTORY] [--vault-pass-file VAULT_PASS_FILE]
                       [--site-config SITE_CONFIG] [--plugin-install-method {galaxy,git-submodule}] [--no-pullremote] [--force]
                       [--dry-run] [--ansible-args ANSIBLE_ARGS]
                       [config_profile]

positional arguments:
  config_profile        Optional profile name from ~/.edd-tool.rc (e.g. 'production', 'devel')

options:
  -h, --help            show this help message and exit
  --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Set the logging level (default: INFO)
  --site-repo SITE_REPO
                        Git URL of the EDD site repository
  --version VERSION     Branch or tag for the site repository
  --deploy-dir DEPLOY_DIR
                        Deployment directory
  --inventory INVENTORY
                        Ansible inventory path (file, dir, or script)
  --vault-pass-file VAULT_PASS_FILE
                        Path to vault password file (defaults to $ANSIBLE_VAULT_PASSWORD_FILE if set)
  --site-config SITE_CONFIG
                        Path to site configuration YAML
  --plugin-install-method {galaxy,git-submodule}
  --no-pullremote       Skip pullremote tag
  --force               Force overwrite of deployment directory
  --dry-run             Dry run the deployment
  --ansible-args ANSIBLE_ARGS
                        Quoted string of extra ansible-playbook args

Deployment profiles

To simplify the deployment interface it is possible to define deployment profiles in the ~/.edd-tool.rc configuration file. This will be used to set the default values for CLI arguments. For example ~/.edd-tool.rc might contain:

## Example ~/.edd-tool.rc
## Define reusable deployment profiles here
## Uncomment and update the profiles below to get started

production:
  site_config: production_config.yml
  site_repo: https://gitlab.com/site-repos/my-telescope-site.git
  inventory: production
  vault-pass-file: ~/.edd/production.pwd

development:
  site_config: development_config.yml
  site_repo: https://gitlab.com/site-repos/my-telescope-site.git
  inventory: development
  vault-pass-file: ~/.edd/development.pwd

The name of a profile can be passed as a positional argument to the deploy command of edd-tool:

edd-tool deploy development --force --version 250915.0

or

edd-tool deploy production --dry-run --force --version 250915.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edd_tool-0.2.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edd_tool-0.2.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file edd_tool-0.2.2.tar.gz.

File metadata

  • Download URL: edd_tool-0.2.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for edd_tool-0.2.2.tar.gz
Algorithm Hash digest
SHA256 b3ee0770a07843d880ca7ad418b6a0da7d2fb81dd8a003f2bcd17539f699faa0
MD5 3b08615c4bb2addc44c57a7d47767f69
BLAKE2b-256 5e57162b66c4d9462e486421b701109819488b0cfd0c1ff38aa752b9e60a191a

See more details on using hashes here.

File details

Details for the file edd_tool-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: edd_tool-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for edd_tool-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 47db910dd430bd5c580880f46bf42e2a09518aa86b3f348ad29fd0dae8642be2
MD5 2bae2774d1c9840ff95be1c0ec2e15de
BLAKE2b-256 d5e648aa611b37ef62bd28592ce38be5cd0944ec6580268358f0b42ed3a709e2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page