Installing Rucio Daemons
Prerequisites
The Rucio daemons run on Python 2.7, 3.6 and 3.7 on any Unix-like platform.
Install via pip
Heads up: We recommend to use the docker-based install (see next section) as it will configure many things for you automatically. Only use the pip-based install if you have a good reason and know how to configure your web service manually:
pip install rucio
This will pull the latest release from
PyPi. The Rucio server also needs
several Python dependencies. These are all listed in the file
requirements.server.txt
and will be pulled in as necessary.
Install via Docker
This image provides the Rucio daemons. Each daemon has to be run in a separate container. It supports MySQL, PostgreSQL, Oracle, and SQLite as database backends.
This image expects that there is an already initialised Rucio DB. To
start a simple judge-cleaner
daemon using a database on
mysql.db
without any additional parameters just run this:
docker run --name=rucio-judge-cleaner \
-e RUCIO_CFG_DATABASE_DEFAULT="mysql+pymysql://rucio:rucio@mysql.db/rucio" \
-e RUCIO_DAEMON=judge-cleaner \
rucio/rucio-daemons
The RUCIO_DAEMON
environment variable gives the name of
the rucio daemon.
Rucio can be configured fully using environment variables like
RUCIO_CFG_DATABASE_DEFAULT
. If you want to instead use a
complete rucio.cfg it can also be mounted. This will then ignore the
RUCIO_CFG
environment variables:
The rucio.cfg is used to configure the database backend and the daemons:
docker run --name=rucio-judge-cleaner \
-v /tmp/rucio.cfg:/opt/rucio/etc/rucio.cfg \
-e RUCIO_DAEMON=judge-cleaner \
rucio/rucio-daemons
By default the daemon logs are written to stdout and stderr if you want
to write to a file you can use RUCIO_ENABLE_LOGS
like
this:
docker run --name=rucio-judge-cleaner \
-v /tmp/rucio.cfg:/opt/rucio/etc/rucio.cfg \
-v /tmp/logs:/var/log/rucio -e RUCIO_DAEMON=judge-cleaner \
-e RUCIO_ENABLE_LOGS=True \
rucio/rucio-daemons
Environment Variables
As shown in the examples above the rucio-daemon image can be configured
using environment variables that are passed with docker run
.
Below is a list of all available variables and their behaviour:
RUCIO_DAEMON
This variable is mandatory and it specifies the name of the daemon,
e.g., hermes
, kronos
,
judge-evaluator
, etc.
RUCIO_DAEMON_ARGS
Any additional command line parameter can be specified here, e.g.,
\--run-once
This field is optional.
RUCIO_ENABLE_LOGS
By default, the log output of the daemon is written to stdout and
stderr. If you set this variable to True
the output will
be written to access_log
and error_log
under
/var/log/rucio
RUCIO_CFG configuration parameters
Environment variables can be used to set values for the auto-generated
rucio.cfg. The names are derived from the actual names in the
configuration file prefixed by RUCIO_CFG
, e.g., the
default
value in the database
section
becomes RUCIO_CFG_DATABASE_DEFAULT
. All available
environment variables are:
- RUCIO_CFG_ACCOUNTS_SPECIAL_ACCOUNTS
- RUCIO_CFG_COMMON_LOGDIR
- RUCIO_CFG_COMMON_LOGLEVEL
- RUCIO_CFG_COMMON_MAILTEMPLATEDIR
- RUCIO_CFG_DATABASE_DEFAULT
- RUCIO_CFG_DATABASE_SCHEMA
- RUCIO_CFG_DATABASE_SCHEMA
- RUCIO_CFG_DATABASE_POOL_RESET_ON_RETURN
- RUCIO_CFG_DATABASE_ECHO
- RUCIO_CFG_DATABASE_POOL_RECYCLE
- RUCIO_CFG_DATABASE_POOL_SIZE
- RUCIO_CFG_DATABASE_POOL_TIMEOUT
- RUCIO_CFG_DATABASE_MAX_OVERFLOW
- RUCIO_CFG_DATABASE_POWUSERACCOUNT
- RUCIO_CFG_DATABASE_POWUSERPASSWORD
- RUCIO_CFG_MONITOR_CARBON_SERVER
- RUCIO_CFG_MONITOR_CARBON_PORT
- RUCIO_CFG_MONITOR_USER_SCOPE
- RUCIO_CFG_PERMISSION_POLICY
- RUCIO_CFG_PERMISSION_SCHEMA
- RUCIO_CFG_PERMISSION_LFN2PFN_ALGORITHM_DEFAULT
- RUCIO_CFG_PERMISSION_SUPPORT
- RUCIO_CFG_PERMISSION_SUPPORT_RUCIO
- RUCIO_CFG_AUTOMATIX_SITES
- RUCIO_CFG_AUTOMATIX_SLEEP_TIME
- RUCIO_CFG_AUTOMATIX_DATASET_LIFETIME
- RUCIO_CFG_AUTOMATIX_SET_METADATA
- RUCIO_CFG_AUDITOR_RESULTS
- RUCIO_CFG_AUDITOR_CACHE
- RUCIO_CFG_CONVEYOR_SCHEME
- RUCIO_CFG_CONVEYOR_TRANSFERTOOL
- RUCIO_CFG_CONVEYOR_FTSHOSTS
- RUCIO_CFG_CONVEYOR_CACERT
- RUCIO_CFG_CONVEYOR_USERCERT
- RUCIO_CFG_CONVEYOR_CACHE_TIME
- RUCIO_CFG_CONVEYOR_USE_DETERMINISTIC_ID
- RUCIO_CFG_CONVEYOR_POLL_TIMEOUT
- RUCIO_CFG_CONVEYOR_SUBMIT_TIMEOUT
- RUCIO_CFG_CONVEYOR_BRING_ONLINE
- RUCIO_CFG_CONVEYOR_QUEUE_MODE
- RUCIO_CFG_CONVEYOR_USING_MEMCACHE
- RUCIO_CFG_CONVEYOR_FTSMONHOSTS
- RUCIO_CFG_MESSAGING_FTS3_PORT
- RUCIO_CFG_MESSAGING_FTS3_SSL_KEY_FILE
- RUCIO_CFG_MESSAGING_FTS3_SSL_CERT_FILE
- RUCIO_CFG_MESSAGING_FTS3_DESTINATION
- RUCIO_CFG_MESSAGING_FTS3_BROKERS
- RUCIO_CFG_MESSAGING_FTS3_VONAME
- RUCIO_CFG_MESSAGING_HERMES_USERNAME
- RUCIO_CFG_MESSAGING_HERMES_PASSWORD
- RUCIO_CFG_MESSAGING_HERMES_PORT
- RUCIO_CFG_MESSAGING_HERMES_NONSSL_PORT
- RUCIO_CFG_MESSAGING_HERMES_USE_SSL
- RUCIO_CFG_MESSAGING_HERMES_SSL_KEY_FILE
- RUCIO_CFG_MESSAGING_HERMES_SSL_CERT_FILE
- RUCIO_CFG_MESSAGING_HERMES_DESTINATION
- RUCIO_CFG_MESSAGING_HERMES_BROKERS
- RUCIO_CFG_MESSAGING_HERMES_VONAME
- RUCIO_CFG_MESSAGING_HERMES_EMAIL_FROM
- RUCIO_CFG_MESSAGING_HERMES_EMAIL_TEST
- RUCIO_CFG_TRACER_KRONOS_BROKERS
- RUCIO_CFG_TRACER_KRONOS_PORT
- RUCIO_CFG_TRACER_SSL_KEY_FILE
- RUCIO_CFG_TRACER_SSL_CERT_FILE
- RUCIO_CFG_TRACER_QUEUE
- RUCIO_CFG_TRACER_PREFETCH_SIZE
- RUCIO_CFG_TRACER_CHUNKSIZE
- RUCIO_CFG_TRACER_SUBSCRIPTION_ID
- RUCIO_CFG_TRACER_USE_SSL
- RUCIO_CFG_TRACER_RECONNECT_ATTEMPTS
- RUCIO_CFG_TRACER_EXCLUDED_USRDNS
- RUCIO_CFG_TRACER_KRONOS_USERNAME
- RUCIO_CFG_TRACER_KRONOS_PASSWORD
- RUCIO_CFG_TRACER_DATASET_WAIT
- RUCIO_CFG_MESSAGING_CACHE_PORT
- RUCIO_CFG_MESSAGING_CACHE_SSL_KEY_FILE
- RUCIO_CFG_MESSAGING_CACHE_SSL_CERT_FILE
- RUCIO_CFG_MESSAGING_CACHE_DESTINATION
- RUCIO_CFG_MESSAGING_CACHE_BROKERS
- RUCIO_CFG_MESSAGING_CACHE_VONAME
- RUCIO_CFG_MESSAGING_CACHE_ACCOUNT
- RUCIO_CFG_CREDENTIALS_GCS
- RUCIO_CFG_CREDENTIALS_SIGNATURE_LIFETIME