# {{ ansible_managed }} {% set _api_threads = ansible_processor_vcpus|default(2) // 2 %} {% set api_threads = _api_threads if _api_threads > 0 else 1 %} [DEFAULT] # Logs / State debug = {{ debug }} verbose = {{ verbose }} fatal_deprecations = {{ nova_fatal_deprecations }} log_dir = /var/log/nova state_path = {{ nova_system_home_folder }} rootwrap_config = /etc/nova/rootwrap.conf service_down_time = 120 # Quota quota_cores = {{ nova_quota_cores }} quota_fixed_ips = {{ nova_quota_fixed_ips }} quota_floating_ips = {{ nova_quota_floating_ips }} quota_injected_file_content_bytes = {{ nova_quota_injected_file_content_bytes }} quota_injected_file_path_length = {{ nova_quota_injected_file_path_length }} quota_injected_files = {{ nova_quota_injected_files }} quota_instances = {{ nova_quota_instances }} quota_key_pairs = {{ nova_quota_key_pairs }} quota_metadata_items = {{ nova_quota_metadata_items }} quota_networks = {{ nova_quota_networks }} quota_ram = {{ nova_quota_ram }} quota_security_group_rules = {{ nova_quota_security_group_rules }} quota_security_groups = {{ nova_quota_security_groups }} quota_server_group_members = {{ nova_quota_server_group_members }} quota_server_groups = {{ nova_quota_server_groups }} # Scheduler cpu_allocation_ratio = {{ nova_cpu_allocation_ratio }} disk_allocation_ratio = {{ nova_disk_allocation_ratio }} max_instances_per_host = {{ nova_max_instances_per_host }} max_io_ops_per_host = {{ nova_max_io_ops_per_host }} ram_allocation_ratio = {{ nova_ram_allocation_ratio }} ram_weight_multiplier = {{ nova_ram_weight_multiplier }} reserved_host_disk_mb = {{ nova_reserved_host_disk_mb }} reserved_host_memory_mb = {{ nova_reserved_host_memory_mb }} scheduler_driver = {{ nova_scheduler_driver }} scheduler_available_filters = {{ nova_scheduler_available_filters }} scheduler_default_filters = {{ nova_scheduler_default_filters }} scheduler_driver_task_period = {{ nova_scheduler_driver_task_period }} scheduler_host_manager = {{ nova_scheduler_host_manager }} scheduler_host_subset_size = {{ nova_scheduler_host_subset_size }} scheduler_manager = {{ nova_scheduler_manager }} scheduler_max_attempts = {{ nova_scheduler_max_attempts }} scheduler_weight_classes = {{ nova_scheduler_weight_classes }} # Compute enable_instance_password = {{ nova_enable_instance_password }} compute_driver = {{ nova_compute_driver }} instance_name_template = instance-%08x instances_path = {{ nova_system_home_folder }}/instances api_paste_config = /etc/nova/api-paste.ini allow_resize_to_same_host = True image_cache_manager_interval = {{ nova_image_cache_manager_interval }} resume_guests_state_on_host_boot = {{ nova_resume_guests_state_on_host_boot }} # Api's enabled_apis = {{ nova_enabled_apis }} osapi_compute_workers = {{ nova_osapi_compute_workers | default(api_threads) }} {% if nova_ec2_deprecated_but_enabled == true or nova_ec2_deprecated_but_enabled == 'True' %} ec2_workers = {{ nova_ec2_workers | default(api_threads) }} ec2_dmz_host = {{ external_lb_vip_address }} {% endif %} {% if nova_s3_deprecated_but_enabled == true or nova_s3_deprecated_but_enabled == 'True' %} s3_port = {{ nova_s3_service_port }} s3_host = {{ ansible_ssh_host }} {% endif %} # Rpc all rpc_backend = {{ nova_rpc_backend }} rpc_thread_pool_size = {{ nova_rpc_thread_pool_size }} rpc_conn_pool_size = {{ nova_rpc_conn_pool_size }} rpc_response_timeout = {{ nova_rpc_response_timeout }} # Metadata metadata_host = {{ internal_lb_vip_address }} metadata_port = {{ nova_metadata_port }} metadata_workers = {{ nova_metadata_workers | default(api_threads) }} # Network force_dhcp_release = True dhcpbridge_flagfile = /etc/nova/nova.conf firewall_driver = {{ nova_firewall_driver }} my_ip = {{ ansible_ssh_host }} default_floating_pool = public security_group_api = neutron network_api_class = nova.network.neutronv2.api.API # VNC disabled, see spice section vnc_enabled = False # Authentication auth_strategy = keystone ## Vif linuxnet_interface_driver = {{ nova_linuxnet_interface_driver }} libvirt_vif_driver = {{ nova_libvirt_vif_driver }} libvirt_vif_type = ethernet vif_plugging_timeout = 10 vif_plugging_is_fatal = False # Hypervisor default_ephemeral_format = ext4 # Configdrive force_config_drive = always # Policy max_age = {{ nova_max_age }} # Common memcached_servers = {{ memcached_servers }} # Ceilometer notification configurations {% if nova_ceilometer_enabled %} instance_usage_audit = True instance_usage_audit_period = hour notify_on_state_change = vm_and_task_state notification_driver = messagingv2 {% endif %} # Cinder [cinder] catalog_info = volume:cinder:internalURL cross_az_attach = {{ nova_cross_az_attach }} {% if nova_spice_html5proxy_base_url is defined and nova_console_type == "spice" %} [spice] agent_enabled = {{ nova_console_agent_enabled }} enabled = {{ nova_console_agent_enabled }} keymap = {{ nova_console_keymap }} # Console Url and binds html5proxy_base_url = {{ nova_spice_html5proxy_base_url }} server_listen = {{ ansible_ssh_host }} server_proxyclient_address = {{ ansible_ssh_host }} {% endif %} # Glance [glance] {% if glance_api_servers is defined %} api_servers = {{ glance_api_servers }} {% else %} host = {{ glance_host }} port = {{ glance_service_port }} {% endif %} # Neutron [neutron] url = {{ neutron_service_adminurl }} region_name = {{ neutron_service_region }} auth_plugin = password auth_strategy = keystone # Keystone client plugin password option password = {{ neutron_service_password }} # Keystone client plugin username option username = {{ neutron_service_user_name }} project_name = {{ neutron_service_project_name }} user_domain_name = {{ neutron_service_domain_name |default("Default") }} project_domain_name = {{ neutron_service_domain_name |default("Default") }} # Keystone client plugin authentication URL option auth_url = {{ keystone_service_adminurl }} metadata_proxy_shared_secret = {{ nova_metadata_proxy_secret }} service_metadata_proxy = {{ nova_metadata_proxy_enabled }} [conductor] use_local = false topic = conductor manager = nova.conductor.manager.ConductorManager workers = {{ nova_conductor_workers | default(api_threads) }} [osapi_v3] # note that this setting enables both the v3 and v2.1 APIs in kilo {% if nova_v3_deprecated_but_enabled == true or nova_v3_deprecated_but_enabled == 'True' or nova_v21_enabled == true or nova_v21_enabled == 'True' %} enabled = true {% else %} enabled = false {% endif %} [keystone_authtoken] insecure = {{ keystone_service_internaluri_insecure | bool }} auth_plugin = {{ nova_keystone_auth_plugin }} signing_dir = {{ nova_system_home_folder }}/cache/api auth_url = {{ keystone_service_adminuri }} auth_uri = {{ keystone_service_internaluri }} project_domain_id = {{ nova_service_project_domain_id }} user_domain_id = {{ nova_service_user_domain_id }} project_name = {{ nova_service_project_name }} username = {{ nova_service_user_name }} password = {{ nova_service_password }} memcached_servers = {{ memcached_servers }} token_cache_time = 300 revocation_cache_time = 60 # if your memcached server is shared, use these settings to avoid cache poisoning memcache_security_strategy = ENCRYPT memcache_secret_key = {{ memcached_encryption_key }} # if your keystone deployment uses PKI, and you value security over performance: check_revocations_for_cached = False {% if inventory_hostname not in groups['nova_compute'] %} [database] connection = mysql://{{ nova_galera_user }}:{{ nova_container_mysql_password }}@{{ nova_galera_address }}/{{ nova_galera_database }}?charset=utf8 max_overflow = {{ nova_db_max_overflow }} max_pool_size = {{ nova_db_max_pool_size }} pool_timeout = {{ nova_db_pool_timeout }} {% endif %} [oslo_concurrency] lock_path = /var/lock/nova [oslo_messaging_rabbit] amqp_auto_delete = False rabbit_port = {{ rabbitmq_port }} rabbit_userid = {{ rabbitmq_userid }} rabbit_password = {{ rabbitmq_password }} rabbit_hosts = {{ rabbitmq_servers }} [libvirt] vif_driver = {{ nova_libvirt_vif_driver }} inject_partition = -2 use_usb_tablet = False use_virtio_for_bridges = True cpu_mode = {{ nova_cpu_mode }} virt_type = {{ nova_virt_type }} remove_unused_resized_minimum_age_seconds = {{ nova_remove_unused_resized_minimum_age_seconds }} {% if cinder_backends_rbd_inuse|bool or nova_libvirt_images_rbd_pool is defined %} rbd_user = {{ nova_ceph_client }} rbd_secret_uuid = {{ nova_ceph_client_uuid }} {% endif %} {% if nova_libvirt_images_rbd_pool is defined %} # ceph rbd support images_type = rbd images_rbd_pool = {{ nova_libvirt_images_rbd_pool }} images_rbd_ceph_conf = /etc/ceph/ceph.conf inject_password = false inject_key = false inject_partition = -2 live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST" {% endif %}