Logo Utrecht University

YODA

Configuring Yoda

Configuring Yoda

Instructions on how to configure a (new) Yoda instance.

1. Create new environment

This first step is optional. You can configure a (new) Yoda instance in an existing environment or create a new environment. A development environment is available with two example instances.

To create a new environment make a new directory under environments. For example a production environment:

mkdir environments/production

We call our new instance ‘yoda’, so create a new instance directory:

mkdir environments/production/yoda

In this new instance directory two directories are needed, on for the Yoda instance variables (group_vars) and one for host specific variables (host_vars).

mkdir environments/production/yoda/group_vars
mkdir environments/production/yoda/host_vars

2. Add hosts of new Yoda instance

Hosts of a Yoda instance are defined in the Ansible inventory file ‘hosts’. For the development instance ‘full’ this inventory can be found in environments/development/full/hosts. In the inventory the hosts of an instance are defined, their functional roles and to which groups they belong.

Example configuration defining the and functional roles of an instance called ‘yoda’:

[yoda:children]
host1.yoda.test
host2.yoda.test
host3.yoda.test
host4.yoda.test

[yoda-portal]
host1.yoda.test

# leave this out when using an existing database for ICAT
[yoda-database]
host1.yoda.test

[yoda-icat]
host1.yoda.test

[yoda-resource]
host2.yoda.test

[yoda-public]
host3.yoda.test

[yoda-eus]
host4.yoda.test

Add the new functional roles of the instance to the corresponding groups. For example:

[portals:children]
yoda-portal

# leave this out when using an existing database for ICAT
[databases:children]
yoda-database

[icats:children]
yoda-icat

[resources:children]
yoda-resource

[publics:children]
yoda-public

[eus:children]
yoda-eus

Last step to add the hosts of a new Yoda instance is to create configuration files for every new host. In development environment these configuration files are placed in environments/development/hosts. For example, for host ‘host1.yoda.test’ a configuration file is created:

touch environments/development/host_vars/host1.yoda.test

And place the basic host configuration in the new file:

---
ansible_host: host1.yoda.test

3. Configure (new) Yoda instance

To configure a (new) Yoda instance we have to edit the instance configuration in the Yoda instance variables directory (group_vars). In case of a new Yoda instance we can copy a configuration of a full development (environments/development/full/) instance as base. The configuration is split in several parts. Below an overview of these parts and the configuration options available.

Ansible configuration

Variable Description
ansible_user Administrative user on instance for Ansible
ansible_ssh_private_key_file Path to private key file of administrative user
repo_only Only download packages from repos

Note: if one of these variables are different for a host then define them in the corresponding host specific variables file (host_vars).

Yoda configuration

Variable Description
instance Name of Yoda instance, as defined in hosts file
yoda_version Git branch, for example: development or release-0.9.7
yoda_environment Yoda environment: development, testing, acceptance or production
yoda_portal_fqdn Yoda Portal fully qualified domain name (FQDN)
yoda_davrods_fqdn Yoda Davrods WebDAV fully qualified domain name (FQDN)
yoda_davrods_anonymous_fqdn Yoda Davrods anonymous WebDAV fully qualified domain name (FQDN)

iRODS configuration

Variable Description
irods_admin iRODS admin username
irods_password iRODS admin password
irods_database_user The iRODS database username
irods_database_password The password for the iRODS database username
irods_zone The name of the iRODS Zone
irods_icat_fqdn iRODS iCAT fully qualified domain name (FQDN)
irods_database_fqdn iRODS database fully qualified domain name (FQDN)
irods_resource_fqdn iRODS resource fully qualified domain name (FQDN)
irods_default_resc iRODS default resource name
irods_ssl_verify_server Verify TLS certificate, use ‘cert’ for acceptance and production
irods_resources Definition of iRODS resources of this Yoda instance

Research module configuration

Variable Description
default_yoda_schema Default Yoda XML scheme: default-0 or default-1
enable_revisions Enable revisions: yes (1) or no (0)
revision_strategy Revision strategy: A, B, J or Simple
yoda_random_id_length Length of random ID to add to persistent identifier
yoda_prefix Prefix for internal portion of persistent identifier
update_rulesets Update already installed rulesets with git
update_schemas Update already installed schemas, formelements and stylesheets: yes (1) or no (0)
credential_files Location of Yoda credentials files

Mail notifications

Variable Description
send_notifications Enable notifications: yes (1) or no (0)
notifications_sender_email Notifiations sender email address
notifications_reply_to Notifiations Reply-To email address
smtp_server SMTP server to send mail to
smtp_username SMTP server username
smtp_password SMTP server password

DataCite Configuration

Variable Description
datacite_username DataCite username
datacite_password DataCite password
datacite_prefix DataCite DOI prefix
datacite_server DataCite server URI

EPIC PID Configuration

Variable Description
epic_url EPIC PID server URI (undefined disables EPIC PID)
epic_handle_prefix EPIC PID prefix
epic_key EPIC PID key (base64 encoded)
epic_cert EPIC PID cert (base64 encoded)

PAM Radius configuration

Variable Description
pam_radius_config: server, shared secret, timeout (s)

Public host configuration

Variable Description
yoda_public_host Yoda public host
yoda_public_fqdn Yoda public fully qualified domain name (FQDN)
upload_priv_key Yoda public upload private key (base64 encoded)
upload_pub_key Yoda public upload public key (base64 encoded)

External user service configuration

Variable Description
yoda_eus_fqdn Yoda External User Service fully qualified domain name (FQDN)
eus_api_fqdn External User Service API fully qualified domain name (FQDN)
eus_api_port External User Service API port
eus_api_secret External User Service API secret
eus_db_password External User Service database password
eus_smtp_host External User Service SMTP host
eus_smtp_port External User Service SMTP port
eus_smtp_user External User Service SMTP user
eus_smtp_password External User Service SMTP password
eus_smtp_from_address External User Service from address
eus_smtp_replyto_address External User Service replyto address
eus_mail_template External User Service mail template