=========================================== Overriding OpenStack configuration defaults =========================================== OpenStack has many configuration options available in configuration files which are in the form of ``.conf`` files (in a standard ``INI`` file format), policy files (in a standard ``JSON`` format) and also ``YAML`` files. .. note:: ``YAML`` files are only in the ceilometer project at this time. OpenStack-Ansible provides the facility to include reference to any options in the `OpenStack Configuration Reference`_ through the use of a simple set of configuration entries in ``/etc/openstack_deploy/user_variables.yml``. This section provides guidance for how to make use of this facility. Further guidance is available in the developer documentation in the section titled `Setting overrides in configuration files`_. .. _OpenStack Configuration Reference: http://docs.openstack.org/draft/config-reference/ .. _Setting overrides in configuration files: ../developer-docs/extending.html#setting-overrides-in-configuration-files Overriding ``.conf`` files ~~~~~~~~~~~~~~~~~~~~~~~~~~ The most common use-case for implementing overrides are for the ``.conf`` files (for example, ``nova.conf``). These files use a standard ``INI`` file format. For example, if you add the following parameters to ``nova.conf``: .. code-block:: ini [DEFAULT] remove_unused_original_minimum_age_seconds = 43200 [libvirt] cpu_mode = host-model disk_cachemodes = file=directsync,block=none [database] idle_timeout = 300 max_pool_size = 10 This is accomplished through the use of the following configuration entry in ``/etc/openstack_deploy/user_variables.yml``: .. code-block:: yaml nova_nova_conf_overrides: DEFAULT: remove_unused_original_minimum_age_seconds: 43200 libvirt: cpu_mode: host-model disk_cachemodes: file=directsync,block=none database: idle_timeout: 300 max_pool_size: 10 Overrides may also be applied on a per host basis with the following configuration in ``/etc/openstack_deploy/openstack_user_config.yml``: .. code-block:: yaml compute_hosts: 900089-compute001: ip: 192.0.2.10 host_vars: nova_nova_conf_overrides: DEFAULT: remove_unused_original_minimum_age_seconds: 43200 libvirt: cpu_mode: host-model disk_cachemodes: file=directsync,block=none database: idle_timeout: 300 max_pool_size: 10 Use this method for any ``INI`` file format for all OpenStack projects deployed in OpenStack-Ansible. To assist you in finding the appropriate variable name to use for overrides, the general format for the variable name is: ``___overrides``. Overriding ``.json`` files ~~~~~~~~~~~~~~~~~~~~~~~~~~ You can adjust the default policies applied by services in order to implement access controls which are different to a standard OpenStack environment. Policy files are in a ``JSON`` format. For example, you can add the following policy in keystone's ``policy.json``: .. code-block:: json { "identity:foo": "rule:admin_required", "identity:bar": "rule:admin_required" } Accomplish this through the use of the following configuration entry in ``/etc/openstack_deploy/user_variables.yml``: .. code-block:: yaml keystone_policy_overrides: identity:foo: "rule:admin_required" identity:bar: "rule:admin_required" Use this method for all OpenStack projects deployed in OpenStack-Ansible with ``JSON`` file formats. To assist you in finding the appropriate variable name to use for overrides, the general format for the variable name is ``_policy_overrides``. Overriding YAML files ~~~~~~~~~~~~~~~~~~~~~~~~~~ You can override ``.yml`` file values by supplying replacement YAML content. .. note:: All default YAML file content will be completely overwritten by the provided overrides, so the entire YAML source (both the existing content and your changes) must be provided. For example, you can define a meter exclusion for all hardware items in the default content of ceilometer's ``pipeline.yml``: .. code-block:: yaml sources: - name: meter_source interval: 600 meters: - "!hardware.*" sinks: - meter_sink - name: foo_source value: foo You can accomplish this through the use of the following configuration entry in ``/etc/openstack_deploy/user_variables.yml``: .. code-block:: yaml ceilometer_pipeline_yaml_overrides: sources: - name: meter_source interval: 600 meters: - "!hardware.*" sinks: - meter_sink - name: source_foo value: foo To assist you in finding the appropriate variable name to use for overrides, the general format for the variable name is ``___overrides``. Currently available overrides ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following is a list of overrides available: Galera: * galera_client_my_cnf_overrides * galera_my_cnf_overrides * galera_cluster_cnf_overrides * galera_debian_cnf_overrides Ceilometer: * ceilometer_policy_overrides * ceilometer_ceilometer_conf_overrides * ceilometer_api_paste_ini_overrides * ceilometer_event_definitions_yaml_overrides * ceilometer_event_pipeline_yaml_overrides * ceilometer_pipeline_yaml_overrides Cinder: * cinder_policy_overrides * cinder_rootwrap_conf_overrides * cinder_api_paste_ini_overrides * cinder_cinder_conf_overrides Glance: * glance_glance_api_paste_ini_overrides * glance_glance_api_conf_overrides * glance_glance_cache_conf_overrides * glance_glance_manage_conf_overrides * glance_glance_registry_paste_ini_overrides * glance_glance_registry_conf_overrides * glance_glance_scrubber_conf_overrides * glance_glance_scheme_json_overrides * glance_policy_overrides Heat: * heat_heat_conf_overrides * heat_api_paste_ini_overrides * heat_default_yaml_overrides * heat_aws_cloudwatch_alarm_yaml_overrides * heat_aws_rds_dbinstance_yaml_overrides * heat_policy_overrides Keystone: * keystone_keystone_conf_overrides * keystone_keystone_default_conf_overrides * keystone_keystone_paste_ini_overrides * keystone_policy_overrides Neutron: * neutron_neutron_conf_overrides * neutron_ml2_conf_ini_overrides * neutron_dhcp_agent_ini_overrides * neutron_api_paste_ini_overrides * neutron_rootwrap_conf_overrides * neutron_policy_overrides * neutron_dnsmasq_neutron_conf_overrides * neutron_l3_agent_ini_overrides * neutron_metadata_agent_ini_overrides * neutron_metering_agent_ini_overrides Nova: * nova_nova_conf_overrides * nova_rootwrap_conf_overrides * nova_api_paste_ini_overrides * nova_policy_overrides Swift: * swift_swift_conf_overrides * swift_swift_dispersion_conf_overrides * swift_proxy_server_conf_overrides * swift_account_server_conf_overrides * swift_account_server_replicator_conf_overrides * swift_container_server_conf_overrides * swift_container_server_replicator_conf_overrides * swift_object_server_conf_overrides * swift_object_server_replicator_conf_overrides Tempest: * tempest_tempest_conf_overrides pip: * pip_global_conf_overrides