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 |