Configuration

Configuration files are located in etc/conductor relative to the python environment Conductor is installed in.

To generate a sample configuration file, change to the directory just above where etc/conductor is located (e.g., / for the default environment, or the virtual environment root directory). Then:

$ oslo-config-generator --config-file=etc/conductor/conductor-config-generator.conf

This will generate etc/conductor/conductor.conf.sample.

Because the configuration directory and files will include credentials, consider removing world permissions:

$ find etc/conductor -type f -exec chmod 640 {} +
$ find etc/conductor -type d -exec chmod 750 {} +

The sample config may then be copied and edited. Be sure to backup any previous conductor.conf if necessary.

$ cd etc/conductor
$ cp -p conductor.conf.sample conductor.conf

conductor.conf is fully annotated with descriptions of all options. Defaults are included, with all options commented out. Conductor will use defaults even if an option is not present in the file. To change an option, simply uncomment it and edit its value.

With the exception of the DEFAULT section, it’s best to restart the Conductor services after making any config changes. In some cases, only one particular service actually needs to be restarted. When in doubt, however, it’s best to restart all of them.

A few options in particular warrant special attention:

[DEFAULT]

# If set to true, the logging level will be set to DEBUG instead of the default
# INFO level. (boolean value)
# Note: This option can be changed without restarting.
#debug = false

For more verbose logging across all Conductor services, set debug to true.

[db_options]

# db_backend to use
db_backend = etcd

# Use music mock api
music_mock = False

Set db_backend to the db(music/etcd) which is being deployed. Based on this options, conductor will decide on using the corresponding client to access the backend.

[aai]

# Base URL for A&AI, up to and not including the version, and without a
# trailing slash. (string value)
#server_url = https://controller:8443/aai

# SSL/TLS certificate file in pem format. This certificate must be registered
# with the A&AI endpoint. (string value)
#certificate_file = certificate.pem

# Private Certificate Key file in pem format. (string value)
#certificate_key_file = certificate_key.pem

# Certificate Authority Bundle file in pem format. Must contain the appropriate
# trust chain for the Certificate file. (string value)
#certificate_authority_bundle_file = certificate_authority_bundle.pem

Set server_url to the A&AI server URL, to but not including the version, omitting any trailing slash. Conductor supports A&AI API v9 at a minimum.

Set the certificate prefixed keys to the appropriate SSL/TLS-related files.

IMPORTANT: The A&AI server may have a mismatched host/domain name and SSL/TLS certificate. In such cases, certificate verification will fail. To mitigate this, certificate_authority_bundle_file may be set to an empty value. While Conductor normally requires a CA Bundle (otherwise why bother using SSL/TLS), this requirement has been temporarily relaxed so that development and testing may continue.

[messaging_server]

# Log debug messages. Default value is False. (boolean value)
#debug = false

When the DEFAULT section’s debug option is true, set this section’s debug option to true to enable detailed Conductor-side RPC-over-Music debug messages.

Be aware, it is voluminous. “You have been warned.” :)

[music_api]

# List of hostnames (round-robin access) (list value)
#hostnames = localhost

# Log debug messages. Default value is False. (boolean value)
#debug = false

Set hostnames to match wherever the Music REST API is being hosted (wherever Apache Tomcat and MUSIC.war are located).

When the DEFAULT section’s debug option is true, set this section’s debug option to true to enable detailed Conductor-side MUSIC API debug messages.

The previous comment around the volume of log lines applies even more so here. (Srsly. We’re not kidding.)

IMPORTANT: Conductor does not presently use Music’s atomic consistency features due to concern around lock creation/acquisition. Instead, Conductor uses eventual consistency. For this reason, consistency issues may occur when using Music in a multi-server, High Availability configuration.

[sdnc]

# Base URL for SDN-C. (string value)
#server_url = https://controller:8443/restconf

# Basic Authentication Username (string value)
#username = <None>

# Basic Authentication Password (string value)
#password = <None>

Set server_url to the SDN-C server URL, omitting any trailing slash.

Set username and password to the appropriate values as directed by SDN-C.