Change-Id: Ia9dc15869ab201a787eecd479252282f0ae9113b Implements: blueprint config-ref-rst
5.9 KiB
Configuration file format
OpenStack uses the INI
file format for configuration files. An INI file
is a simple text file that specifies options as key=value
pairs, grouped into sections. The DEFAULT
section contains
most of the configuration options. Lines starting with a hash sign
(#
) are comment lines. For example:
[DEFAULT]
# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
debug = true
# Print more verbose output (set logging level to INFO instead
# of default WARNING level). (boolean value)
verbose = true
[database]
# The SQLAlchemy connection string used to connect to the
# database (string value)
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
Options can have different types for values. The comments in the
sample config files always mention these and the tables mention the
Opt
value as first item like
(BoolOpt) Toggle...
. The following types are used by
OpenStack:
- boolean value (
BoolOpt
) -
Enables or disables an option. The allowed values are
true
andfalse
.# Enable the experimental use of database reconnect on # connection lost (boolean value) use_db_reconnect = false
- floating point value (
FloatOpt
) -
A floating point number like
0.25
or1000
.# Sleep time in seconds for polling an ongoing async task # (floating point value) task_poll_interval = 0.5
- integer value (
IntOpt
) -
An integer number is a number without fractional components, like
0
or42
.# The port which the OpenStack Compute service listens on. # (integer value) compute_port = 8774
- IP address (
IPOpt
) -
An IPv4 or IPv6 address.
# Address to bind the server. Useful when selecting a particular network # interface. (ip address value) bind_host = 0.0.0.0
- key-value pairs (
DictOpt
) -
A key-value pairs, also known as a dictonary. The key value pairs are separated by commas and a colon is used to separate key and value. Example:
key1:value1,key2:value2
.# Parameter for l2_l3 workflow setup. (dict value) l2_l3_setup_params = data_ip_address:192.168.200.99, \ data_ip_mask:255.255.255.0,data_port:1,gateway:192.168.200.1,ha_port:2
- list value (
ListOpt
) -
Represents values of other types, separated by commas. As an example, the following sets
allowed_rpc_exception_modules
to a list containing the four elementsoslo.messaging.exceptions
,nova.exception
,cinder.exception
, andexceptions
:# Modules of exceptions that are permitted to be recreated # upon receiving exception data from an rpc call. (list value) allowed_rpc_exception_modules = oslo.messaging.exceptions,nova.exception
- multi valued (
MultiStrOpt
) -
A multi-valued option is a string value and can be given more than once, all values will be used.
# Driver or drivers to handle sending notifications. (multi valued) notification_driver = nova.openstack.common.notifier.rpc_notifier notification_driver = ceilometer.compute.nova_notifier
- port value (
PortOpt
) -
A TCP/IP port number. Ports can range from 1 to 65535.
# Port to which the UDP socket is bound. (port value) # Minimum value: 1 # Maximum value: 65535 udp_port = 4952
- string value (
StrOpt
) -
Strings can be optionally enclosed with single or double quotes.
# Enables or disables publication of error events. (boolean value) publish_errors = false # The format for an instance that is passed with the log message. # (string value) instance_format = "[instance: %(uuid)s] "
Sections
Configuration options are grouped by section. Most configuration files support at least the following sections:
- [DEFAULT]
-
Contains most configuration options. If the documentation for a configuration option does not specify its section, assume that it appears in this section.
- [database]
-
Configuration options for the database that stores the state of the OpenStack service.
Substitution
The configuration file supports variable substitution. After you set
a configuration option, it can be referenced in later configuration
values when you precede it with a $
, like
$OPTION
.
The following example uses the values of rabbit_host
and
rabbit_port
to define the value of the
rabbit_hosts
option, in this case as
controller:5672
.
# The RabbitMQ broker address where a single node is used.
# (string value)
rabbit_host = controller
# The RabbitMQ broker port where a single node is used.
# (integer value)
rabbit_port = 5672
# RabbitMQ HA cluster host:port pairs. (list value)
rabbit_hosts = $rabbit_host:$rabbit_port
To avoid substitution, use $$
, it is replaced by a
single $
. For example, if your LDAP DNS password is
$xkj432
, specify it, as follows:
ldap_dns_password = $$xkj432
The code uses the Python
string.Template.safe_substitute()
method to implement
variable substitution. For more details on how variable substitution is
resolved, see http://docs.python.org/2/library/string.html#template-strings
and PEP 292.
Whitespace
To include whitespace in a configuration value, use a quoted string. For example:
ldap_dns_passsword='a password with spaces'
Define an alternate location for a config file
Most services and the *-manage
command-line clients load
the configuration file. To define an alternate location for the
configuration file, pass the --config-file CONFIG_FILE
parameter when you start a service or call a *-manage
command.