Implement IPv6 support in the control plane
Introduce kolla_address filter. Introduce put_address_in_context filter. Add AF config to vars. Address contexts: - raw (default): <ADDR> - memcache: inet6:[<ADDR>] - url: [<ADDR>] Other changes: globals.yml - mention just IP in comment prechecks/port_checks (api_intf) - kolla_address handles validation 3x interface conditional (swift configs: replication/storage) 2x interface variable definition with hostname (haproxy listens; api intf) 1x interface variable definition with hostname with bifrost exclusion (baremetal pre-install /etc/hosts; api intf) neutron's ml2 'overlay_ip_version' set to 6 for IPv6 on tunnel network basic multinode source CI job for IPv6 prechecks for rabbitmq and qdrouterd use proper NSS database now MariaDB Galera Cluster WSREP SST mariabackup workaround (socat and IPv6) Ceph naming workaround in CI TODO: probably needs documenting RabbitMQ IPv6-only proto_dist Ceph ms switch to IPv6 mode Remove neutron-server ml2_type_vxlan/vxlan_group setting as it is not used (let's avoid any confusion) and could break setups without proper multicast routing if it started working (also IPv4-only) haproxy upgrade checks for slaves based on ipv6 addresses TODO: ovs-dpdk grabs ipv4 network address (w/ prefix len / submask) not supported, invalid by default because neutron_external has no address No idea whether ovs-dpdk works at all atm. ml2 for xenapi Xen is not supported too well. This would require working with XenAPI facts. rp_filter setting This would require meddling with ip6tables (there is no sysctl param). By default nothing is dropped. Unlikely we really need it. ironic dnsmasq is configured IPv4-only dnsmasq needs DHCPv6 options and testing in vivo. KNOWN ISSUES (beyond us): One cannot use IPv6 address to reference the image for docker like we currently do, see: https://github.com/moby/moby/issues/39033 (docker_registry; docker API 400 - invalid reference format) workaround: use hostname/FQDN RabbitMQ may fail to bind to IPv6 if hostname resolves also to IPv4. This is due to old RabbitMQ versions available in images. IPv4 is preferred by default and may fail in the IPv6-only scenario. This should be no problem in real life as IPv6-only is indeed IPv6-only. Also, when new RabbitMQ (3.7.16/3.8+) makes it into images, this will no longer be relevant as we supply all the necessary config. See: https://github.com/rabbitmq/rabbitmq-server/pull/1982 For reliable runs, at least Ansible 2.8 is required (2.8.5 confirmed to work well). Older Ansible versions are known to miss IPv6 addresses in interface facts. This may affect redeploys, reconfigures and upgrades which run after VIP address is assigned. See: https://github.com/ansible/ansible/issues/63227 Bifrost Train does not support IPv6 deployments. See: https://storyboard.openstack.org/#!/story/2006689 Change-Id: Ia34e6916ea4f99e9522cd2ddde03a0a4776f7e2c Implements: blueprint ipv6-control-plane Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
This commit is contained in:
parent
ba228529b1
commit
bc053c09c1
28
ansible/filter_plugins/address.py
Normal file
28
ansible/filter_plugins/address.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright 2019 Radosław Piliszek (yoctozepto)
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
from kolla_ansible.kolla_address import kolla_address
|
||||||
|
from kolla_ansible.put_address_in_context import put_address_in_context
|
||||||
|
|
||||||
|
|
||||||
|
class FilterModule(object):
|
||||||
|
"""IP address filters"""
|
||||||
|
|
||||||
|
def filters(self):
|
||||||
|
return {
|
||||||
|
'kolla_address': kolla_address,
|
||||||
|
'put_address_in_context': put_address_in_context,
|
||||||
|
}
|
@ -64,10 +64,10 @@ container_proxy:
|
|||||||
|
|
||||||
# By default, Kolla API services bind to the network address assigned
|
# By default, Kolla API services bind to the network address assigned
|
||||||
# to the api_interface. Allow the bind address to be an override.
|
# to the api_interface. Allow the bind address to be an override.
|
||||||
api_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
|
api_interface_address: "{{ 'api' | kolla_address }}"
|
||||||
|
|
||||||
# This is used to get the ip corresponding to the storage_interface.
|
# This is used to get the ip corresponding to the storage_interface.
|
||||||
storage_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
storage_interface_address: "{{ 'storage' | kolla_address }}"
|
||||||
|
|
||||||
################
|
################
|
||||||
# Chrony options
|
# Chrony options
|
||||||
@ -109,9 +109,9 @@ docker_restart_policy_retry: "10"
|
|||||||
|
|
||||||
# Extra docker options for Zun
|
# Extra docker options for Zun
|
||||||
docker_configure_for_zun: "no"
|
docker_configure_for_zun: "no"
|
||||||
docker_zun_options: -H tcp://{{ api_interface_address }}:2375
|
docker_zun_options: -H tcp://{{ api_interface_address | put_address_in_context('url') }}:2375
|
||||||
docker_zun_config:
|
docker_zun_config:
|
||||||
cluster-store: etcd://{% for host in groups.get('etcd', []) %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ hostvars[host]['etcd_client_port'] }}{% if not loop.last %},{% endif %}{% endfor %}
|
cluster-store: etcd://{% for host in groups.get('etcd', []) %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ hostvars[host]['etcd_client_port'] }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
# Timeout after Docker sends SIGTERM before sending SIGKILL.
|
# Timeout after Docker sends SIGTERM before sending SIGKILL.
|
||||||
docker_graceful_timeout: 60
|
docker_graceful_timeout: 60
|
||||||
@ -165,7 +165,7 @@ om_rpc_port: "{{ rabbitmq_port }}"
|
|||||||
om_rpc_group: "rabbitmq"
|
om_rpc_group: "rabbitmq"
|
||||||
om_rpc_vhost: "/"
|
om_rpc_vhost: "/"
|
||||||
|
|
||||||
rpc_transport_url: "{{ om_rpc_transport }}://{% for host in groups[om_rpc_group] %}{{ om_rpc_user }}:{{ om_rpc_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ om_rpc_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_rpc_vhost }}"
|
rpc_transport_url: "{{ om_rpc_transport }}://{% for host in groups[om_rpc_group] %}{{ om_rpc_user }}:{{ om_rpc_password }}@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ om_rpc_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_rpc_vhost }}"
|
||||||
|
|
||||||
# oslo.messaging notify transport valid options are [ rabbit ]
|
# oslo.messaging notify transport valid options are [ rabbit ]
|
||||||
om_notify_transport: "rabbit"
|
om_notify_transport: "rabbit"
|
||||||
@ -175,7 +175,7 @@ om_notify_port: "{{ rabbitmq_port }}"
|
|||||||
om_notify_group: "rabbitmq"
|
om_notify_group: "rabbitmq"
|
||||||
om_notify_vhost: "/"
|
om_notify_vhost: "/"
|
||||||
|
|
||||||
notify_transport_url: "{{ om_notify_transport }}://{% for host in groups[om_notify_group] %}{{ om_notify_user }}:{{ om_notify_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ om_notify_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_notify_vhost }}"
|
notify_transport_url: "{{ om_notify_transport }}://{% for host in groups[om_notify_group] %}{{ om_notify_user }}:{{ om_notify_password }}@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ om_notify_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_notify_vhost }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Networking options
|
# Networking options
|
||||||
@ -193,9 +193,24 @@ tunnel_interface: "{{ network_interface }}"
|
|||||||
octavia_network_interface: "{{ api_interface }}"
|
octavia_network_interface: "{{ api_interface }}"
|
||||||
bifrost_network_interface: "{{ network_interface }}"
|
bifrost_network_interface: "{{ network_interface }}"
|
||||||
dns_interface: "{{ network_interface }}"
|
dns_interface: "{{ network_interface }}"
|
||||||
migration_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + migration_interface]['ipv4']['address'] }}"
|
|
||||||
tunnel_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}"
|
# Configure the address family (AF) per network.
|
||||||
octavia_network_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + octavia_network_interface]['ipv4']['address'] }}"
|
# Valid options are [ ipv4, ipv6 ]
|
||||||
|
network_address_family: "ipv4"
|
||||||
|
api_address_family: "{{ network_address_family }}"
|
||||||
|
storage_address_family: "{{ network_address_family }}"
|
||||||
|
cluster_address_family: "{{ network_address_family }}"
|
||||||
|
swift_storage_address_family: "{{ storage_address_family }}"
|
||||||
|
swift_replication_address_family: "{{ swift_storage_address_family }}"
|
||||||
|
migration_address_family: "{{ network_address_family }}"
|
||||||
|
tunnel_address_family: "{{ network_address_family }}"
|
||||||
|
octavia_network_address_family: "{{ api_address_family }}"
|
||||||
|
bifrost_network_address_family: "{{ network_address_family }}"
|
||||||
|
dns_address_family: "{{ network_address_family }}"
|
||||||
|
|
||||||
|
migration_interface_address: "{{ 'migration' | kolla_address }}"
|
||||||
|
tunnel_interface_address: "{{ 'tunnel' | kolla_address }}"
|
||||||
|
octavia_network_interface_address: "{{ 'octavia_network' | kolla_address }}"
|
||||||
|
|
||||||
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs, opendaylight ]
|
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs, opendaylight ]
|
||||||
neutron_plugin_agent: "openvswitch"
|
neutron_plugin_agent: "openvswitch"
|
||||||
@ -715,14 +730,14 @@ enable_kibana: "{{ 'yes' if enable_central_logging | bool or enable_monasca | bo
|
|||||||
####################
|
####################
|
||||||
# Redis options
|
# Redis options
|
||||||
####################
|
####################
|
||||||
redis_connection_string: "redis://{% for host in groups['redis'] %}{% if host == groups['redis'][0] %}admin:{{ redis_master_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ redis_sentinel_port }}?sentinel=kolla{% else %}&sentinel_fallback={{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ redis_sentinel_port }}{% endif %}{% endfor %}&db=0&socket_timeout=60&retry_on_timeout=yes"
|
redis_connection_string: "redis://{% for host in groups['redis'] %}{% if host == groups['redis'][0] %}admin:{{ redis_master_password }}@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ redis_sentinel_port }}?sentinel=kolla{% else %}&sentinel_fallback={{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ redis_sentinel_port }}{% endif %}{% endfor %}&db=0&socket_timeout=60&retry_on_timeout=yes"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Osprofiler options
|
# Osprofiler options
|
||||||
####################
|
####################
|
||||||
# valid values: ["elasticsearch", "redis"]
|
# valid values: ["elasticsearch", "redis"]
|
||||||
osprofiler_backend: "elasticsearch"
|
osprofiler_backend: "elasticsearch"
|
||||||
elasticsearch_connection_string: "elasticsearch://{{ elasticsearch_address }}:{{ elasticsearch_port }}"
|
elasticsearch_connection_string: "elasticsearch://{{ elasticsearch_address | put_address_in_context('url') }}:{{ elasticsearch_port }}"
|
||||||
osprofiler_backend_connection_string: "{{ redis_connection_string if osprofiler_backend == 'redis' else elasticsearch_connection_string }}"
|
osprofiler_backend_connection_string: "{{ redis_connection_string if osprofiler_backend == 'redis' else elasticsearch_connection_string }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -762,9 +777,9 @@ kibana_log_prefix: "flog"
|
|||||||
####################
|
####################
|
||||||
keystone_internal_fqdn: "{{ kolla_internal_fqdn }}"
|
keystone_internal_fqdn: "{{ kolla_internal_fqdn }}"
|
||||||
keystone_external_fqdn: "{{ kolla_external_fqdn }}"
|
keystone_external_fqdn: "{{ kolla_external_fqdn }}"
|
||||||
keystone_admin_url: "{{ admin_protocol }}://{{ keystone_internal_fqdn }}:{{ keystone_admin_port }}"
|
keystone_admin_url: "{{ admin_protocol }}://{{ keystone_internal_fqdn | put_address_in_context('url') }}:{{ keystone_admin_port }}"
|
||||||
keystone_internal_url: "{{ internal_protocol }}://{{ keystone_internal_fqdn }}:{{ keystone_public_port }}"
|
keystone_internal_url: "{{ internal_protocol }}://{{ keystone_internal_fqdn | put_address_in_context('url') }}:{{ keystone_public_port }}"
|
||||||
keystone_public_url: "{{ public_protocol }}://{{ keystone_external_fqdn }}:{{ keystone_public_port }}"
|
keystone_public_url: "{{ public_protocol }}://{{ keystone_external_fqdn | put_address_in_context('url') }}:{{ keystone_public_port }}"
|
||||||
|
|
||||||
keystone_admin_user: "admin"
|
keystone_admin_user: "admin"
|
||||||
keystone_admin_project: "admin"
|
keystone_admin_project: "admin"
|
||||||
|
@ -58,7 +58,7 @@ aodh_evaluation_interval: 300
|
|||||||
####################
|
####################
|
||||||
aodh_database_name: "aodh"
|
aodh_database_name: "aodh"
|
||||||
aodh_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}aodh{% endif %}"
|
aodh_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}aodh{% endif %}"
|
||||||
aodh_database_address: "{{ database_address }}:{{ database_port }}"
|
aodh_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Notification
|
# Notification
|
||||||
@ -129,9 +129,9 @@ aodh_notifier_extra_volumes: "{{ aodh_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
aodh_admin_endpoint: "{{ admin_protocol }}://{{ aodh_internal_fqdn }}:{{ aodh_api_port }}"
|
aodh_admin_endpoint: "{{ admin_protocol }}://{{ aodh_internal_fqdn | put_address_in_context('url') }}:{{ aodh_api_port }}"
|
||||||
aodh_internal_endpoint: "{{ internal_protocol }}://{{ aodh_internal_fqdn }}:{{ aodh_api_port }}"
|
aodh_internal_endpoint: "{{ internal_protocol }}://{{ aodh_internal_fqdn | put_address_in_context('url') }}:{{ aodh_api_port }}"
|
||||||
aodh_public_endpoint: "{{ public_protocol }}://{{ aodh_external_fqdn }}:{{ aodh_api_port }}"
|
aodh_public_endpoint: "{{ public_protocol }}://{{ aodh_external_fqdn | put_address_in_context('url') }}:{{ aodh_api_port }}"
|
||||||
|
|
||||||
aodh_logging_debug: "{{ openstack_logging_debug }}"
|
aodh_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ connection = mysql+pymysql://{{ aodh_database_user }}:{{ aodh_database_password
|
|||||||
[keystone_authtoken]
|
[keystone_authtoken]
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
www_authenticate_uri = {{ keystone_internal_url }}
|
www_authenticate_uri = {{ keystone_internal_url }}
|
||||||
project_domain_name = {{ default_project_domain_name }}
|
project_domain_name = {{ default_project_domain_name }}
|
||||||
project_name = service
|
project_name = service
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% set binary_path = '/usr/bin' if aodh_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
{% set binary_path = '/usr/bin' if aodh_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||||
Listen {{ api_interface_address }}:{{ aodh_api_listen_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ aodh_api_listen_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -43,7 +43,7 @@ barbican_services:
|
|||||||
####################
|
####################
|
||||||
barbican_database_name: "barbican"
|
barbican_database_name: "barbican"
|
||||||
barbican_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}barbican{% endif %}"
|
barbican_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}barbican{% endif %}"
|
||||||
barbican_database_address: "{{ database_address }}:{{ database_port }}"
|
barbican_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -93,9 +93,9 @@ barbican_worker_extra_volumes: "{{ barbican_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
barbican_admin_endpoint: "{{ admin_protocol }}://{{ barbican_internal_fqdn }}:{{ barbican_api_port }}"
|
barbican_admin_endpoint: "{{ admin_protocol }}://{{ barbican_internal_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}"
|
||||||
barbican_internal_endpoint: "{{ internal_protocol }}://{{ barbican_internal_fqdn }}:{{ barbican_api_port }}"
|
barbican_internal_endpoint: "{{ internal_protocol }}://{{ barbican_internal_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}"
|
||||||
barbican_public_endpoint: "{{ public_protocol }}://{{ barbican_external_fqdn }}:{{ barbican_api_port }}"
|
barbican_public_endpoint: "{{ public_protocol }}://{{ barbican_external_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}"
|
||||||
|
|
||||||
barbican_logging_debug: "{{ openstack_logging_debug }}"
|
barbican_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[uwsgi]
|
[uwsgi]
|
||||||
socket = {{ api_interface_address }}:{{ barbican_api_listen_port }}
|
socket = {{ api_interface_address | put_address_in_context('url') }}:{{ barbican_api_listen_port }}
|
||||||
protocol = http
|
protocol = http
|
||||||
processes = {{ openstack_service_workers }}
|
processes = {{ openstack_service_workers }}
|
||||||
lazy = true
|
lazy = true
|
||||||
|
@ -4,7 +4,7 @@ log_dir = /var/log/kolla/barbican
|
|||||||
|
|
||||||
bind_port = {{ barbican_api_listen_port }}
|
bind_port = {{ barbican_api_listen_port }}
|
||||||
bind_host = {{ api_interface_address }}
|
bind_host = {{ api_interface_address }}
|
||||||
host_href = {{ public_protocol }}://{{ barbican_external_fqdn }}:{{ barbican_api_port }}
|
host_href = {{ public_protocol }}://{{ barbican_external_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}
|
||||||
backlog = 4096
|
backlog = 4096
|
||||||
max_allowed_secret_in_bytes = 10000
|
max_allowed_secret_in_bytes = 10000
|
||||||
max_allowed_request_size_in_bytes = 1000000
|
max_allowed_request_size_in_bytes = 1000000
|
||||||
@ -62,7 +62,7 @@ auth_type = password
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
[oslo_messaging_notifications]
|
||||||
transport_url = {{ notify_transport_url }}
|
transport_url = {{ notify_transport_url }}
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
{% set api_interface = hostvars[host]['api_interface'] %}
|
{% set api_interface = hostvars[host]['api_interface'] %}
|
||||||
{% if host not in groups['bifrost'] or 'ansible_' + api_interface in hostvars[host] %}
|
{% if host not in groups['bifrost'] or 'ansible_' + api_interface in hostvars[host] %}
|
||||||
{% set hostnames = [hostvars[host]['ansible_nodename'], hostvars[host]['ansible_hostname']] %}
|
{% set hostnames = [hostvars[host]['ansible_nodename'], hostvars[host]['ansible_hostname']] %}
|
||||||
{{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }} {{ hostnames | unique | join(' ') }}
|
{{ 'api' | kolla_address(host) }} {{ hostnames | unique | join(' ') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
become: True
|
become: True
|
||||||
|
@ -39,7 +39,7 @@ blazar_aggregate_pool_name: "freepool"
|
|||||||
####################
|
####################
|
||||||
blazar_database_name: "blazar"
|
blazar_database_name: "blazar"
|
||||||
blazar_database_user: "blazar"
|
blazar_database_user: "blazar"
|
||||||
blazar_database_address: "{{ database_address }}:{{ database_port }}"
|
blazar_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -77,9 +77,9 @@ blazar_manager_extra_volumes: "{{ blazar_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
blazar_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ blazar_api_port }}/v1"
|
blazar_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ blazar_api_port }}/v1"
|
||||||
blazar_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ blazar_api_port }}/v1"
|
blazar_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ blazar_api_port }}/v1"
|
||||||
blazar_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ blazar_api_port }}/v1"
|
blazar_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ blazar_api_port }}/v1"
|
||||||
|
|
||||||
blazar_logging_debug: "{{ openstack_logging_debug }}"
|
blazar_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ service_token_roles_required = True
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
connection = mysql+pymysql://{{ blazar_database_user }}:{{ blazar_database_password }}@{{ blazar_database_address }}/{{ blazar_database_name }}
|
connection = mysql+pymysql://{{ blazar_database_user }}:{{ blazar_database_password }}@{{ blazar_database_address }}/{{ blazar_database_name }}
|
||||||
|
@ -51,4 +51,4 @@ connection_password = {{ xenserver_password }}
|
|||||||
[cache]
|
[cache]
|
||||||
backend = oslo_cache.memcache_pool
|
backend = oslo_cache.memcache_pool
|
||||||
enabled = True
|
enabled = True
|
||||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
@ -101,9 +101,9 @@ ceph_mds_hostname: "{%- if ceph_mds_host_type == 'HOSTNAME' -%}{{ ansible_hostna
|
|||||||
####################
|
####################
|
||||||
## Ceph_rgw_keystone
|
## Ceph_rgw_keystone
|
||||||
####################
|
####################
|
||||||
swift_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
swift_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||||
swift_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
swift_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||||
swift_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
swift_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||||
|
|
||||||
ceph_rgw_keystone_user: "ceph_rgw"
|
ceph_rgw_keystone_user: "ceph_rgw"
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
- name: Check final release (as running on MONs)
|
- name: Check final release (as running on MONs)
|
||||||
become: true
|
become: true
|
||||||
command: "docker exec ceph_mon ceph -m {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }} versions"
|
command: "docker exec ceph_mon ceph -m {{ 'storage' | kolla_address }} versions"
|
||||||
changed_when: false
|
changed_when: false
|
||||||
register: ceph_release_command
|
register: ceph_release_command
|
||||||
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
- name: Finalize the upgrade by disallowing older OSDs
|
- name: Finalize the upgrade by disallowing older OSDs
|
||||||
become: true
|
become: true
|
||||||
command: "docker exec ceph_mon ceph -m {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }} osd require-osd-release {{ ((ceph_release_command.stdout|from_json).mon | string).split(' ')[4] }}"
|
command: "docker exec ceph_mon ceph -m {{ 'storage' | kolla_address }} osd require-osd-release {{ ((ceph_release_command.stdout|from_json).mon | string).split(' ')[4] }}"
|
||||||
changed_when: false
|
changed_when: false
|
||||||
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
||||||
run_once: true
|
run_once: true
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"command": "/usr/bin/ceph-mon -f {% if ceph_debug %}-d{% endif %} -i {{ ceph_mon_hostname }} --public-addr {{ storage_interface_address }}:6789",
|
"command": "/usr/bin/ceph-mon -f {% if ceph_debug %}-d{% endif %} -i {{ ceph_mon_hostname }} --public-addr {{ storage_interface_address | put_address_in_context('url') }}:6789",
|
||||||
"config_files": [
|
"config_files": [
|
||||||
{
|
{
|
||||||
"source": "{{ container_config_directory }}/ceph.conf",
|
"source": "{{ container_config_directory }}/ceph.conf",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"command": "/usr/bin/ceph-osd -f {% if ceph_debug %}-d{% endif %} --public-addr {{ storage_interface_address }} --cluster-addr {{ hostvars[inventory_hostname]['ansible_' + cluster_interface]['ipv4']['address'] }}",
|
"command": "/usr/bin/ceph-osd -f {% if ceph_debug %}-d{% endif %} --public-addr {{ storage_interface_address }} --cluster-addr {{ 'cluster' | kolla_address }}",
|
||||||
"config_files": [
|
"config_files": [
|
||||||
{
|
{
|
||||||
"source": "{{ container_config_directory }}/ceph.conf",
|
"source": "{{ container_config_directory }}/ceph.conf",
|
||||||
|
@ -13,12 +13,16 @@ mon initial members = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ans
|
|||||||
{% elif ceph_mon_host_type == 'INVENTORY' %}
|
{% elif ceph_mon_host_type == 'INVENTORY' %}
|
||||||
mon initial members = {% for host in groups['ceph-mon'] %}{{ host }}{% if not loop.last %}, {% endif %}{% endfor %}
|
mon initial members = {% for host in groups['ceph-mon'] %}{{ host }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
mon initial members = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ansible_' + hostvars[host]['storage_interface']]['ipv4']['address'] }}{% if not loop.last %}, {% endif %}{% endfor %}
|
mon initial members = {% for host in groups['ceph-mon'] %}{{ 'storage' | kolla_address(host) }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
mon host = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ansible_' + hostvars[host]['storage_interface']]['ipv4']['address'] }}{% if not loop.last %}, {% endif %}{% endfor %}
|
mon host = {% for host in groups['ceph-mon'] %}{{ 'storage' | kolla_address(host) }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||||
|
|
||||||
mon addr = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ansible_' + hostvars[host]['storage_interface']]['ipv4']['address'] }}:6789{% if not loop.last %}, {% endif %}{% endfor %}
|
mon addr = {% for host in groups['ceph-mon'] %}{{ 'storage' | kolla_address(host) | put_address_in_context('url') }}:6789{% if not loop.last %}, {% endif %}{% endfor %}
|
||||||
|
|
||||||
|
{% if storage_address_family == 'ipv6' %}
|
||||||
|
ms bind ipv6 = true
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
auth cluster required = cephx
|
auth cluster required = cephx
|
||||||
auth service required = cephx
|
auth service required = cephx
|
||||||
@ -43,8 +47,8 @@ mon cluster log file = /var/log/kolla/ceph/$cluster.log
|
|||||||
|
|
||||||
{% if service_name is defined and service_name == 'ceph-rgw' %}
|
{% if service_name is defined and service_name == 'ceph-rgw' %}
|
||||||
[client.radosgw.gateway]
|
[client.radosgw.gateway]
|
||||||
host = {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}
|
host = {{ 'storage' | kolla_address }}
|
||||||
rgw frontends = civetweb port={{ api_interface_address }}:{{ rgw_port }}
|
rgw frontends = civetweb port={{ api_interface_address | put_address_in_context('url') }}:{{ rgw_port }}
|
||||||
{% if enable_ceph_rgw_keystone | bool %}
|
{% if enable_ceph_rgw_keystone | bool %}
|
||||||
rgw_keystone_url = {{ keystone_admin_url }}
|
rgw_keystone_url = {{ keystone_admin_url }}
|
||||||
rgw_keystone_admin_user = {{ ceph_rgw_keystone_user }}
|
rgw_keystone_admin_user = {{ ceph_rgw_keystone_user }}
|
||||||
|
@ -91,7 +91,7 @@ ceph_client_cinder_backup_keyring_caps:
|
|||||||
####################
|
####################
|
||||||
cinder_database_name: "cinder"
|
cinder_database_name: "cinder"
|
||||||
cinder_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cinder{% endif %}"
|
cinder_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cinder{% endif %}"
|
||||||
cinder_database_address: "{{ database_address }}:{{ database_port }}"
|
cinder_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
# Max number of object to consider
|
# Max number of object to consider
|
||||||
# when run online data migration
|
# when run online data migration
|
||||||
@ -164,12 +164,12 @@ cinder_volume_extra_volumes: "{{ cinder_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
cinder_v2_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
cinder_v2_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||||
cinder_v2_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
cinder_v2_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||||
cinder_v2_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
cinder_v2_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||||
cinder_v3_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
cinder_v3_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||||
cinder_v3_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
cinder_v3_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||||
cinder_v3_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
cinder_v3_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||||
|
|
||||||
cinder_logging_debug: "{{ openstack_logging_debug }}"
|
cinder_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
Listen {{ api_interface_address }}:{{ cinder_api_listen_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ cinder_api_listen_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -13,7 +13,7 @@ my_ip = {{ api_interface_address }}
|
|||||||
osapi_volume_workers = {{ openstack_service_workers }}
|
osapi_volume_workers = {{ openstack_service_workers }}
|
||||||
volume_name_template = volume-%s
|
volume_name_template = volume-%s
|
||||||
|
|
||||||
glance_api_servers = {{ internal_protocol }}://{{ glance_internal_fqdn }}:{{ glance_api_port }}
|
glance_api_servers = {{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}
|
||||||
|
|
||||||
glance_num_retries = {{ groups['glance-api'] | length }}
|
glance_num_retries = {{ groups['glance-api'] | length }}
|
||||||
glance_api_version = 2
|
glance_api_version = 2
|
||||||
@ -42,7 +42,7 @@ backup_share = {{ cinder_backup_share }}
|
|||||||
backup_file_size = 327680000
|
backup_file_size = 327680000
|
||||||
{% elif enable_swift | bool and cinder_backup_driver == "swift" %}
|
{% elif enable_swift | bool and cinder_backup_driver == "swift" %}
|
||||||
backup_driver = cinder.backup.drivers.swift.SwiftBackupDriver
|
backup_driver = cinder.backup.drivers.swift.SwiftBackupDriver
|
||||||
backup_swift_url = {{ internal_protocol }}://{{ swift_internal_fqdn }}:{{ swift_proxy_server_port }}/v1/AUTH_
|
backup_swift_url = {{ internal_protocol }}://{{ swift_internal_fqdn | put_address_in_context('url') }}:{{ swift_proxy_server_port }}/v1/AUTH_
|
||||||
backup_swift_auth = per_user
|
backup_swift_auth = per_user
|
||||||
backup_swift_auth_version = 1
|
backup_swift_auth_version = 1
|
||||||
backup_swift_user =
|
backup_swift_user =
|
||||||
@ -103,7 +103,7 @@ password = {{ cinder_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
[oslo_concurrency]
|
[oslo_concurrency]
|
||||||
@ -210,5 +210,5 @@ auth_endpoint = {{ keystone_internal_url }}
|
|||||||
backend_url = {{ redis_connection_string }}
|
backend_url = {{ redis_connection_string }}
|
||||||
{% elif cinder_coordination_backend == 'etcd' %}
|
{% elif cinder_coordination_backend == 'etcd' %}
|
||||||
# NOTE(jeffrey4l): python-etcd3 module do not support multi endpoint here.
|
# NOTE(jeffrey4l): python-etcd3 module do not support multi endpoint here.
|
||||||
backend_url = etcd3://{{ hostvars[groups['etcd'][0]]['ansible_' + hostvars[groups['etcd'][0]]['api_interface']]['ipv4']['address'] }}:{{ etcd_client_port }}
|
backend_url = etcd3://{{ 'api' | kolla_address(groups['etcd'][0]) | put_address_in_context('url') }}:{{ etcd_client_port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -34,7 +34,7 @@ cloudkitty_services:
|
|||||||
####################
|
####################
|
||||||
cloudkitty_database_name: "cloudkitty"
|
cloudkitty_database_name: "cloudkitty"
|
||||||
cloudkitty_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cloudkitty{% endif %}"
|
cloudkitty_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cloudkitty{% endif %}"
|
||||||
cloudkitty_database_address: "{{ database_address }}:{{ database_port }}"
|
cloudkitty_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -72,9 +72,9 @@ cloudkitty_api_extra_volumes: "{{ cloudkitty_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
cloudkitty_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ cloudkitty_api_port }}"
|
cloudkitty_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cloudkitty_api_port }}"
|
||||||
cloudkitty_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ cloudkitty_api_port }}"
|
cloudkitty_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cloudkitty_api_port }}"
|
||||||
cloudkitty_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ cloudkitty_api_port }}"
|
cloudkitty_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ cloudkitty_api_port }}"
|
||||||
|
|
||||||
cloudkitty_logging_debug: "{{ openstack_logging_debug }}"
|
cloudkitty_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ region_name = {{ openstack_region_name }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[oslo_concurrency]
|
[oslo_concurrency]
|
||||||
lock_path = /var/lib/cloudkitty/tmp
|
lock_path = /var/lib/cloudkitty/tmp
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{% set python_path = '/usr/lib/python2.7/site-packages' if cloudkitty_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
{% set python_path = '/usr/lib/python2.7/site-packages' if cloudkitty_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||||
{% set binary_path = '/usr/bin' if cloudkitty_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
{% set binary_path = '/usr/bin' if cloudkitty_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||||
Listen {{ api_interface_address }}:{{ cloudkitty_api_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ cloudkitty_api_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -7,5 +7,5 @@ LoadPlugin memory
|
|||||||
LoadPlugin network
|
LoadPlugin network
|
||||||
|
|
||||||
<Plugin "network">
|
<Plugin "network">
|
||||||
Server "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}" "{{ collectd_udp_port }}"
|
Server "{{ 'api' | kolla_address }}" "{{ collectd_udp_port }}"
|
||||||
</Plugin>
|
</Plugin>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<store>
|
<store>
|
||||||
@type monasca
|
@type monasca
|
||||||
keystone_url {{ keystone_internal_url }}
|
keystone_url {{ keystone_internal_url }}
|
||||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}
|
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}
|
||||||
monasca_log_api_version v3.0
|
monasca_log_api_version v3.0
|
||||||
username {{ monasca_agent_user }}
|
username {{ monasca_agent_user }}
|
||||||
password {{ monasca_agent_password }}
|
password {{ monasca_agent_password }}
|
||||||
@ -81,7 +81,7 @@
|
|||||||
<store>
|
<store>
|
||||||
@type monasca
|
@type monasca
|
||||||
keystone_url {{ keystone_internal_url }}
|
keystone_url {{ keystone_internal_url }}
|
||||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}
|
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}
|
||||||
monasca_log_api_version v3.0
|
monasca_log_api_version v3.0
|
||||||
username {{ monasca_agent_user }}
|
username {{ monasca_agent_user }}
|
||||||
password {{ monasca_agent_password }}
|
password {{ monasca_agent_password }}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<store>
|
<store>
|
||||||
@type monasca
|
@type monasca
|
||||||
keystone_url {{ keystone_internal_url }}
|
keystone_url {{ keystone_internal_url }}
|
||||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}
|
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}
|
||||||
monasca_log_api_version v3.0
|
monasca_log_api_version v3.0
|
||||||
username {{ monasca_agent_user }}
|
username {{ monasca_agent_user }}
|
||||||
password {{ monasca_agent_password }}
|
password {{ monasca_agent_password }}
|
||||||
|
@ -41,7 +41,7 @@ congress_services:
|
|||||||
####################
|
####################
|
||||||
congress_database_name: "congress"
|
congress_database_name: "congress"
|
||||||
congress_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}congress{% endif %}"
|
congress_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}congress{% endif %}"
|
||||||
congress_database_address: "{{ database_address }}:{{ database_port }}"
|
congress_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -90,9 +90,9 @@ congress_datasource_extra_volumes: "{{ congress_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
congress_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ congress_api_port }}"
|
congress_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}"
|
||||||
congress_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ congress_api_port }}"
|
congress_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}"
|
||||||
congress_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ congress_api_port }}"
|
congress_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}"
|
||||||
|
|
||||||
congress_logging_debug: "{{ openstack_logging_debug }}"
|
congress_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ password = {{ congress_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
[oslo_messaging_notifications]
|
||||||
transport_url = {{ notify_transport_url }}
|
transport_url = {{ notify_transport_url }}
|
||||||
@ -54,4 +54,4 @@ policy_file = {{ congress_policy_file }}
|
|||||||
enable_proxy_headers_parsing = True
|
enable_proxy_headers_parsing = True
|
||||||
|
|
||||||
[congress]
|
[congress]
|
||||||
url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ congress_api_port }}
|
url = {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}
|
||||||
|
@ -29,7 +29,7 @@ cyborg_services:
|
|||||||
####################
|
####################
|
||||||
cyborg_database_name: "cyborg"
|
cyborg_database_name: "cyborg"
|
||||||
cyborg_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cyborg{% endif %}"
|
cyborg_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cyborg{% endif %}"
|
||||||
cyborg_database_address: "{{ database_address }}:{{ database_port }}"
|
cyborg_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Docker
|
# Docker
|
||||||
@ -77,9 +77,9 @@ cyborg_conductor_extra_volumes: "{{ cyborg_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
cyborg_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ cyborg_api_port }}"
|
cyborg_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cyborg_api_port }}"
|
||||||
cyborg_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ cyborg_api_port }}"
|
cyborg_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cyborg_api_port }}"
|
||||||
cyborg_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ cyborg_api_port }}"
|
cyborg_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ cyborg_api_port }}"
|
||||||
|
|
||||||
cyborg_logging_debug: "{{ openstack_logging_debug }}"
|
cyborg_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -16,14 +16,14 @@ connection = mysql+pymysql://{{ cyborg_database_user }}:{{ cyborg_database_passw
|
|||||||
[keystone_authtoken]
|
[keystone_authtoken]
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}
|
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ keystone_public_port }}
|
||||||
project_domain_name = {{ default_project_domain_name }}
|
project_domain_name = {{ default_project_domain_name }}
|
||||||
project_name = service
|
project_name = service
|
||||||
user_domain_name = {{ default_user_domain_name }}
|
user_domain_name = {{ default_user_domain_name }}
|
||||||
username = {{ cyborg_keystone_user }}
|
username = {{ cyborg_keystone_user }}
|
||||||
password = {{ cyborg_keystone_password }}
|
password = {{ cyborg_keystone_password }}
|
||||||
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}
|
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ keystone_admin_port }}
|
||||||
auth_type = password
|
auth_type = password
|
||||||
|
|
||||||
{% if cyborg_policy_file is defined %}
|
{% if cyborg_policy_file is defined %}
|
||||||
|
@ -71,7 +71,7 @@ designate_services:
|
|||||||
####################
|
####################
|
||||||
designate_database_name: "designate"
|
designate_database_name: "designate"
|
||||||
designate_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}designate{% endif %}"
|
designate_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}designate{% endif %}"
|
||||||
designate_database_address: "{{ database_address }}:{{ database_port }}"
|
designate_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -164,9 +164,9 @@ designate_sink_extra_volumes: "{{ designate_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
designate_admin_endpoint: "{{ admin_protocol }}://{{ designate_internal_fqdn }}:{{ designate_api_port }}"
|
designate_admin_endpoint: "{{ admin_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}"
|
||||||
designate_internal_endpoint: "{{ internal_protocol }}://{{ designate_internal_fqdn }}:{{ designate_api_port }}"
|
designate_internal_endpoint: "{{ internal_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}"
|
||||||
designate_public_endpoint: "{{ public_protocol }}://{{ designate_external_fqdn }}:{{ designate_api_port }}"
|
designate_public_endpoint: "{{ public_protocol }}://{{ designate_external_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}"
|
||||||
|
|
||||||
designate_logging_debug: "{{ openstack_logging_debug }}"
|
designate_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
- name: Checking free port for designate mdns
|
- name: Checking free port for designate mdns
|
||||||
wait_for:
|
wait_for:
|
||||||
host: "{{ hostvars[inventory_hostname]['ansible_' + dns_interface]['ipv4']['address'] }}"
|
host: "{{ 'dns' | kolla_address }}"
|
||||||
port: "{{ designate_mdns_port }}"
|
port: "{{ designate_mdns_port }}"
|
||||||
connect_timeout: 1
|
connect_timeout: 1
|
||||||
timeout: 1
|
timeout: 1
|
||||||
|
@ -11,8 +11,8 @@ default_pool_id = {{ designate_pool_id }}
|
|||||||
workers = {{ openstack_service_workers }}
|
workers = {{ openstack_service_workers }}
|
||||||
|
|
||||||
[service:api]
|
[service:api]
|
||||||
listen = {{ api_interface_address }}:{{ designate_api_listen_port }}
|
listen = {{ api_interface_address | put_address_in_context('url') }}:{{ designate_api_listen_port }}
|
||||||
api_base_uri = {{ internal_protocol }}://{{ designate_internal_fqdn }}:{{ designate_api_port }}
|
api_base_uri = {{ internal_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}
|
||||||
workers = {{ openstack_service_workers }}
|
workers = {{ openstack_service_workers }}
|
||||||
enable_api_admin = True
|
enable_api_admin = True
|
||||||
enable_host_header = True
|
enable_host_header = True
|
||||||
@ -32,7 +32,7 @@ service_token_roles_required = True
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[service:sink]
|
[service:sink]
|
||||||
enabled_notification_handlers = nova_fixed, neutron_floatingip
|
enabled_notification_handlers = nova_fixed, neutron_floatingip
|
||||||
@ -40,7 +40,7 @@ workers = {{ openstack_service_workers }}
|
|||||||
|
|
||||||
{% if service_name == 'designate-mdns' %}
|
{% if service_name == 'designate-mdns' %}
|
||||||
[service:mdns]
|
[service:mdns]
|
||||||
listen = {{ hostvars[inventory_hostname]['ansible_' + dns_interface]['ipv4']['address'] }}:{{ designate_mdns_port }}
|
listen = {{ 'dns' | kolla_address | put_address_in_context('url') }}:{{ designate_mdns_port }}
|
||||||
workers = {{ openstack_service_workers }}
|
workers = {{ openstack_service_workers }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -104,5 +104,5 @@ policy_file = {{ designate_policy_file }}
|
|||||||
backend_url = {{ redis_connection_string }}
|
backend_url = {{ redis_connection_string }}
|
||||||
{% elif designate_coordination_backend == 'etcd' %}
|
{% elif designate_coordination_backend == 'etcd' %}
|
||||||
# NOTE(noxoid): python-etcd3 does not support multiple endpoints
|
# NOTE(noxoid): python-etcd3 does not support multiple endpoints
|
||||||
backend_url = etcd3://{{ hostvars[groups['etcd'][0]]['ansible_' + hostvars[groups['etcd'][0]]['api_interface']]['ipv4']['address'] }}:{{ etcd_client_port }}
|
backend_url = etcd3://{{ 'api' | kolla_address(groups['etcd'][0]) | put_address_in_context('url') }}:{{ etcd_client_port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#jinja2: trim_blocks: False
|
#jinja2: trim_blocks: False
|
||||||
include "/etc/rndc.key";
|
include "/etc/rndc.key";
|
||||||
options {
|
options {
|
||||||
listen-on port {{ designate_bind_port }} { {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['api_interface']]['ipv4']['address'] }}; };
|
listen-on port {{ designate_bind_port }} { {{ 'api' | kolla_address }}; };
|
||||||
{% if api_interface != dns_interface %}
|
{% if api_interface != dns_interface %}
|
||||||
listen-on port {{ designate_bind_port }} { {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['dns_interface']]['ipv4']['address'] }}; };
|
listen-on port {{ designate_bind_port }} { {{ 'dns' | kolla_address }}; };
|
||||||
{% endif %}
|
{% endif %}
|
||||||
directory "/var/lib/named";
|
directory "/var/lib/named";
|
||||||
allow-new-zones yes;
|
allow-new-zones yes;
|
||||||
@ -15,9 +15,9 @@ options {
|
|||||||
forwarders { {{ designate_forwarders_addresses }}; };
|
forwarders { {{ designate_forwarders_addresses }}; };
|
||||||
{% endif %}
|
{% endif %}
|
||||||
minimal-responses yes;
|
minimal-responses yes;
|
||||||
allow-notify { {% for host in groups['designate-worker'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }};{% endfor %} };
|
allow-notify { {% for host in groups['designate-worker'] %}{{ 'api' | kolla_address(host) }};{% endfor %} };
|
||||||
};
|
};
|
||||||
|
|
||||||
controls {
|
controls {
|
||||||
inet {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['api_interface']]['ipv4']['address'] }} port {{ designate_rndc_port }} allow { {% for host in groups['designate-worker'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}; {% endfor %} } keys { "rndc-key"; };
|
inet {{ 'api' | kolla_address }} port {{ designate_rndc_port }} allow { {% for host in groups['designate-worker'] %}{{ 'api' | kolla_address(host) }}; {% endfor %} } keys { "rndc-key"; };
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
nameservers:
|
nameservers:
|
||||||
{% if designate_backend == 'bind9' %}
|
{% if designate_backend == 'bind9' %}
|
||||||
{% for host in groups['designate-backend-bind9'] %}
|
{% for host in groups['designate-backend-bind9'] %}
|
||||||
- host: {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}
|
- host: {{ 'api' | kolla_address(host) }}
|
||||||
port: {{ designate_bind_port }}
|
port: {{ designate_bind_port }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% elif designate_backend_external == 'bind9' %}
|
{% elif designate_backend_external == 'bind9' %}
|
||||||
@ -22,16 +22,16 @@
|
|||||||
{% if designate_backend == 'bind9' %}
|
{% if designate_backend == 'bind9' %}
|
||||||
{% for bind_host in groups['designate-backend-bind9'] %}
|
{% for bind_host in groups['designate-backend-bind9'] %}
|
||||||
- type: bind9
|
- type: bind9
|
||||||
description: BIND9 Server {{ hostvars[bind_host]['ansible_' + hostvars[bind_host]['api_interface']]['ipv4']['address'] }}
|
description: BIND9 Server {{ 'api' | kolla_address(bind_host) }}
|
||||||
masters:
|
masters:
|
||||||
{% for mdns_host in groups['designate-mdns'] %}
|
{% for mdns_host in groups['designate-mdns'] %}
|
||||||
- host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
|
- host: {{ 'dns' | kolla_address(mdns_host) }}
|
||||||
port: {{ designate_mdns_port }}
|
port: {{ designate_mdns_port }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
options:
|
options:
|
||||||
host: {{ hostvars[bind_host]['ansible_' + hostvars[bind_host]['api_interface']]['ipv4']['address'] }}
|
host: {{ 'api' | kolla_address(bind_host) }}
|
||||||
port: {{ designate_bind_port }}
|
port: {{ designate_bind_port }}
|
||||||
rndc_host: {{ hostvars[bind_host]['ansible_' + hostvars[bind_host]['api_interface']]['ipv4']['address'] }}
|
rndc_host: {{ 'api' | kolla_address(bind_host) }}
|
||||||
rndc_port: {{ designate_rndc_port }}
|
rndc_port: {{ designate_rndc_port }}
|
||||||
rndc_key_file: /etc/designate/rndc.key
|
rndc_key_file: /etc/designate/rndc.key
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -41,7 +41,7 @@
|
|||||||
description: BIND9 Server {{ bind_host }}
|
description: BIND9 Server {{ bind_host }}
|
||||||
masters:
|
masters:
|
||||||
{% for mdns_host in groups['designate-mdns'] %}
|
{% for mdns_host in groups['designate-mdns'] %}
|
||||||
- host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
|
- host: {{ 'dns' | kolla_address(mdns_host) }}
|
||||||
port: {{ designate_mdns_port }}
|
port: {{ designate_mdns_port }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
options:
|
options:
|
||||||
@ -71,7 +71,7 @@
|
|||||||
description: Default Infoblox Pool
|
description: Default Infoblox Pool
|
||||||
masters:
|
masters:
|
||||||
{% for mdns_host in groups['designate-mdns'] %}
|
{% for mdns_host in groups['designate-mdns'] %}
|
||||||
- host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
|
- host: {{ 'dns' | kolla_address(mdns_host) }}
|
||||||
port: {{ designate_mdns_port }}
|
port: {{ designate_mdns_port }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
options:
|
options:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "/etc/rndc.key";
|
#include "/etc/rndc.key";
|
||||||
options {
|
options {
|
||||||
default-key "rndc-key";
|
default-key "rndc-key";
|
||||||
default-server {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['api_interface']]['ipv4']['address'] }};
|
default-server {{ 'api' | kolla_address }};
|
||||||
default-port {{ designate_rndc_port }};
|
default-port {{ designate_rndc_port }};
|
||||||
};
|
};
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# https://www.elastic.co/guide/en/elasticsearch/reference/5.6/restart-upgrade.html
|
# https://www.elastic.co/guide/en/elasticsearch/reference/5.6/restart-upgrade.html
|
||||||
- name: Disable shard allocation
|
- name: Disable shard allocation
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/_cluster/settings"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/_cluster/settings"
|
||||||
method: PUT
|
method: PUT
|
||||||
status_code: 200
|
status_code: 200
|
||||||
return_content: yes
|
return_content: yes
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
- name: Perform a synced flush
|
- name: Perform a synced flush
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/_flush/synced"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/_flush/synced"
|
||||||
method: POST
|
method: POST
|
||||||
status_code: 200
|
status_code: 200
|
||||||
return_content: yes
|
return_content: yes
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
{% set minimum_master_nodes = (num_nodes / 2 + 1) | round(0, 'floor') | int if num_nodes > 2 else 1 %}
|
{% set minimum_master_nodes = (num_nodes / 2 + 1) | round(0, 'floor') | int if num_nodes > 2 else 1 %}
|
||||||
{% set recover_after_nodes = (num_nodes * 2 / 3) | round(0, 'floor') | int if num_nodes > 1 else 1 %}
|
{% set recover_after_nodes = (num_nodes * 2 / 3) | round(0, 'floor') | int if num_nodes > 1 else 1 %}
|
||||||
node.name: "{{ api_interface_address }}"
|
node.name: "{{ api_interface_address }}"
|
||||||
network.host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
|
network.host: "{{ 'api' | kolla_address }}"
|
||||||
|
|
||||||
cluster.name: "{{ elasticsearch_cluster_name }}"
|
cluster.name: "{{ elasticsearch_cluster_name }}"
|
||||||
node.master: true
|
node.master: true
|
||||||
node.data: true
|
node.data: true
|
||||||
discovery.zen.ping.unicast.hosts: [{% for host in groups['elasticsearch'] %}"{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}"{% if not loop.last %},{% endif %}{% endfor %}]
|
discovery.zen.ping.unicast.hosts: [{% for host in groups['elasticsearch'] %}"{{ 'api' | kolla_address(host) }}"{% if not loop.last %},{% endif %}{% endfor %}]
|
||||||
|
|
||||||
discovery.zen.minimum_master_nodes: {{ minimum_master_nodes }}
|
discovery.zen.minimum_master_nodes: {{ minimum_master_nodes }}
|
||||||
http.port: {{ elasticsearch_port }}
|
http.port: {{ elasticsearch_port }}
|
||||||
|
@ -9,12 +9,12 @@ etcd_services:
|
|||||||
environment:
|
environment:
|
||||||
ETCD_DATA_DIR: "/var/lib/etcd"
|
ETCD_DATA_DIR: "/var/lib/etcd"
|
||||||
ETCD_NAME: "{{ ansible_hostname }}"
|
ETCD_NAME: "{{ ansible_hostname }}"
|
||||||
ETCD_ADVERTISE_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_client_port }}"
|
ETCD_ADVERTISE_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_client_port }}"
|
||||||
ETCD_LISTEN_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_client_port }}"
|
ETCD_LISTEN_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_client_port }}"
|
||||||
ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_peer_port }}"
|
ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_peer_port }}"
|
||||||
ETCD_LISTEN_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_peer_port }}"
|
ETCD_LISTEN_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_peer_port }}"
|
||||||
ETCD_INITIAL_CLUSTER_TOKEN: "{{ etcd_cluster_token }}"
|
ETCD_INITIAL_CLUSTER_TOKEN: "{{ etcd_cluster_token }}"
|
||||||
ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd'] %}{{ hostvars[host]['ansible_hostname'] }}={{ internal_protocol }}://{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd'] %}{{ hostvars[host]['ansible_hostname'] }}={{ internal_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
ETCD_INITIAL_CLUSTER_STATE: "new"
|
ETCD_INITIAL_CLUSTER_STATE: "new"
|
||||||
ETCD_OUT_FILE: "/var/log/kolla/etcd/etcd.log"
|
ETCD_OUT_FILE: "/var/log/kolla/etcd/etcd.log"
|
||||||
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
@ -34,7 +34,7 @@ freezer_services:
|
|||||||
freezer_database_backend: "mariadb"
|
freezer_database_backend: "mariadb"
|
||||||
freezer_database_name: "freezer"
|
freezer_database_name: "freezer"
|
||||||
freezer_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}freezer{% endif %}"
|
freezer_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}freezer{% endif %}"
|
||||||
freezer_database_address: "{{ database_address }}:{{ database_port }}"
|
freezer_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
freezer_elasticsearch_replicas: "1"
|
freezer_elasticsearch_replicas: "1"
|
||||||
freezer_es_protocol:
|
freezer_es_protocol:
|
||||||
freezer_es_address:
|
freezer_es_address:
|
||||||
@ -77,9 +77,9 @@ freezer_scheduler_extra_volumes: "{{ freezer_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
freezer_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ freezer_api_port }}"
|
freezer_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ freezer_api_port }}"
|
||||||
freezer_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ freezer_api_port }}"
|
freezer_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ freezer_api_port }}"
|
||||||
freezer_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ freezer_api_port }}"
|
freezer_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ freezer_api_port }}"
|
||||||
|
|
||||||
freezer_logging_debug: "{{ openstack_logging_debug }}"
|
freezer_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ password = {{ freezer_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
{% if freezer_policy_file is defined %}
|
{% if freezer_policy_file is defined %}
|
||||||
[oslo_policy]
|
[oslo_policy]
|
||||||
@ -63,7 +63,7 @@ backend = elasticsearch
|
|||||||
driver = elasticsearch
|
driver = elasticsearch
|
||||||
|
|
||||||
[elasticsearch]
|
[elasticsearch]
|
||||||
hosts = {{ freezer_es_protocol }}://{{ freezer_es_address }}:{{ freezer_es_port }}
|
hosts = {{ freezer_es_protocol }}://{{ freezer_es_address | put_address_in_context('url') }}:{{ freezer_es_port }}
|
||||||
number_of_replicas = {{ freezer_elasticsearch_replicas }}
|
number_of_replicas = {{ freezer_elasticsearch_replicas }}
|
||||||
index = freezer
|
index = freezer
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{% set freezer_log_dir = '/var/log/kolla/freezer' %}
|
{% set freezer_log_dir = '/var/log/kolla/freezer' %}
|
||||||
{% set python_path = '/usr/lib/python2.7/site-packages' if freezer_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
{% set python_path = '/usr/lib/python2.7/site-packages' if freezer_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||||
Listen {{ api_interface_address }}:{{ freezer_api_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ freezer_api_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -37,7 +37,7 @@ glance_services:
|
|||||||
####################
|
####################
|
||||||
# HAProxy
|
# HAProxy
|
||||||
####################
|
####################
|
||||||
haproxy_members: "{% for host in glance_api_hosts %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ glance_api_listen_port }} check inter 2000 rise 2 fall 5;{% endfor %}"
|
haproxy_members: "{% for host in glance_api_hosts %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ glance_api_listen_port }} check inter 2000 rise 2 fall 5;{% endfor %}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Keystone
|
# Keystone
|
||||||
@ -92,7 +92,7 @@ ceph_client_glance_keyring_caps:
|
|||||||
####################
|
####################
|
||||||
glance_database_name: "glance"
|
glance_database_name: "glance"
|
||||||
glance_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}glance{% endif %}"
|
glance_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}glance{% endif %}"
|
||||||
glance_database_address: "{{ database_address }}:{{ database_port }}"
|
glance_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -147,9 +147,9 @@ glance_store_backends: "{{ glance_backends|selectattr('enabled', 'equalto', true
|
|||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
|
|
||||||
glance_admin_endpoint: "{{ admin_protocol }}://{{ glance_internal_fqdn }}:{{ glance_api_port }}"
|
glance_admin_endpoint: "{{ admin_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
||||||
glance_internal_endpoint: "{{ internal_protocol }}://{{ glance_internal_fqdn }}:{{ glance_api_port }}"
|
glance_internal_endpoint: "{{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
||||||
glance_public_endpoint: "{{ public_protocol }}://{{ glance_external_fqdn }}:{{ glance_api_port }}"
|
glance_public_endpoint: "{{ public_protocol }}://{{ glance_external_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
||||||
|
|
||||||
glance_logging_debug: "{{ openstack_logging_debug }}"
|
glance_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ password = {{ glance_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[paste_deploy]
|
[paste_deploy]
|
||||||
flavor = {% if enable_glance_image_cache | bool %}keystone+cachemanagement{% else %}keystone{% endif %}
|
flavor = {% if enable_glance_image_cache | bool %}keystone+cachemanagement{% else %}keystone{% endif %}
|
||||||
|
@ -69,7 +69,7 @@ swift_admin_tenant_name: "admin"
|
|||||||
####################
|
####################
|
||||||
gnocchi_database_name: "gnocchi"
|
gnocchi_database_name: "gnocchi"
|
||||||
gnocchi_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}gnocchi{% endif %}"
|
gnocchi_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}gnocchi{% endif %}"
|
||||||
gnocchi_database_address: "{{ database_address }}:{{ database_port }}"
|
gnocchi_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -120,9 +120,9 @@ gnocchi_statsd_extra_volumes: "{{ gnocchi_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
gnocchi_admin_endpoint: "{{ admin_protocol }}://{{ gnocchi_internal_fqdn }}:{{ gnocchi_api_port }}"
|
gnocchi_admin_endpoint: "{{ admin_protocol }}://{{ gnocchi_internal_fqdn | put_address_in_context('url') }}:{{ gnocchi_api_port }}"
|
||||||
gnocchi_internal_endpoint: "{{ internal_protocol }}://{{ gnocchi_internal_fqdn }}:{{ gnocchi_api_port }}"
|
gnocchi_internal_endpoint: "{{ internal_protocol }}://{{ gnocchi_internal_fqdn | put_address_in_context('url') }}:{{ gnocchi_api_port }}"
|
||||||
gnocchi_public_endpoint: "{{ public_protocol }}://{{ gnocchi_external_fqdn }}:{{ gnocchi_api_port }}"
|
gnocchi_public_endpoint: "{{ public_protocol }}://{{ gnocchi_external_fqdn | put_address_in_context('url') }}:{{ gnocchi_api_port }}"
|
||||||
|
|
||||||
gnocchi_logging_debug: "{{ openstack_logging_debug }}"
|
gnocchi_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ auth_type = password
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
{% if gnocchi_policy_file is defined %}
|
{% if gnocchi_policy_file is defined %}
|
||||||
[oslo_policy]
|
[oslo_policy]
|
||||||
@ -87,5 +87,5 @@ swift_project_name = {{ swift_admin_tenant_name }}
|
|||||||
|
|
||||||
{% if enable_grafana | bool %}
|
{% if enable_grafana | bool %}
|
||||||
[cors]
|
[cors]
|
||||||
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn }}:{{ grafana_server_port }}
|
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ grafana_server_port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% set wsgi_path = '/usr/bin' if gnocchi_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
{% set wsgi_path = '/usr/bin' if gnocchi_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||||
Listen {{ api_interface_address }}:{{ gnocchi_api_listen_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ gnocchi_api_listen_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -26,7 +26,7 @@ grafana_services:
|
|||||||
####################
|
####################
|
||||||
grafana_database_name: "grafana"
|
grafana_database_name: "grafana"
|
||||||
grafana_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}grafana{% endif %}"
|
grafana_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}grafana{% endif %}"
|
||||||
grafana_database_address: "{{ database_address }}:{{ database_port }}"
|
grafana_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Datasource
|
# Datasource
|
||||||
@ -39,7 +39,7 @@ grafana_data_sources:
|
|||||||
database: "telegraf"
|
database: "telegraf"
|
||||||
name: "telegraf"
|
name: "telegraf"
|
||||||
type: "influxdb"
|
type: "influxdb"
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ influxdb_http_port }}"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ influxdb_http_port }}"
|
||||||
access: "proxy"
|
access: "proxy"
|
||||||
basicAuth: false
|
basicAuth: false
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
@ -48,7 +48,7 @@ grafana_data_sources:
|
|||||||
name: "elasticsearch"
|
name: "elasticsearch"
|
||||||
type: "elasticsearch"
|
type: "elasticsearch"
|
||||||
access: "proxy"
|
access: "proxy"
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}"
|
||||||
database: "flog-*"
|
database: "flog-*"
|
||||||
jsonData:
|
jsonData:
|
||||||
esVersion: 5
|
esVersion: 5
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: Wait for grafana application ready
|
- name: Wait for grafana application ready
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ grafana_server_port }}/login"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ grafana_server_port }}/login"
|
||||||
status_code: 200
|
status_code: 200
|
||||||
register: result
|
register: result
|
||||||
until: result.get('status') == 200
|
until: result.get('status') == 200
|
||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
- name: Enable grafana datasources
|
- name: Enable grafana datasources
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ grafana_server_port }}/api/datasources"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ grafana_server_port }}/api/datasources"
|
||||||
method: POST
|
method: POST
|
||||||
user: "{{ grafana_admin_username }}"
|
user: "{{ grafana_admin_username }}"
|
||||||
password: "{{ grafana_admin_password }}"
|
password: "{{ grafana_admin_password }}"
|
||||||
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
- name: Disable Getting Started panel
|
- name: Disable Getting Started panel
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ grafana_server_port }}/api/user/helpflags/1"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ grafana_server_port }}/api/user/helpflags/1"
|
||||||
method: PUT
|
method: PUT
|
||||||
user: "{{ grafana_admin_username }}"
|
user: "{{ grafana_admin_username }}"
|
||||||
password: "{{ grafana_admin_password }}"
|
password: "{{ grafana_admin_password }}"
|
||||||
|
@ -5,5 +5,5 @@ datasources:
|
|||||||
type: prometheus
|
type: prometheus
|
||||||
access: proxy
|
access: proxy
|
||||||
orgId: 1
|
orgId: 1
|
||||||
url: http://{{ kolla_internal_vip_address }}:{{ prometheus_port }}
|
url: http://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ prometheus_port }}
|
||||||
version: 1
|
version: 1
|
||||||
|
@ -60,9 +60,8 @@ listen {{ service_name }}
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for host in groups[host_group] %}
|
{% for host in groups[host_group] %}
|
||||||
{% set api_interface = "ansible_%s"|format(hostvars[host]['api_interface']) %}
|
|
||||||
{% set host_name = hostvars[host]['ansible_hostname'] %}
|
{% set host_name = hostvars[host]['ansible_hostname'] %}
|
||||||
{% set host_ip = hostvars[host][api_interface]['ipv4']['address'] %}
|
{% set host_ip = 'api' | kolla_address(host) %}
|
||||||
server {{ host_name }} {{ host_ip }}:{{ listen_port }} {{ haproxy_health_check }}
|
server {{ host_name }} {{ host_ip }}:{{ listen_port }} {{ haproxy_health_check }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -80,9 +80,8 @@ backend {{ service_name }}_back
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for host in groups[host_group] %}
|
{% for host in groups[host_group] %}
|
||||||
{% set api_interface = "ansible_%s"|format(hostvars[host]['api_interface']) %}
|
|
||||||
{% set host_name = hostvars[host]['ansible_hostname'] %}
|
{% set host_name = hostvars[host]['ansible_hostname'] %}
|
||||||
{% set host_ip = hostvars[host][api_interface]['ipv4']['address'] %}
|
{% set host_ip = 'api' | kolla_address(host) %}
|
||||||
server {{ host_name }} {{ host_ip }}:{{ listen_port }} {{ haproxy_health_check }}
|
server {{ host_name }} {{ host_ip }}:{{ listen_port }} {{ haproxy_health_check }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -169,13 +169,13 @@
|
|||||||
- inventory_hostname in groups['haproxy']
|
- inventory_hostname in groups['haproxy']
|
||||||
- api_interface_address != kolla_internal_vip_address
|
- api_interface_address != kolla_internal_vip_address
|
||||||
|
|
||||||
|
# FIXME(yoctozepto): this req seems arbitrary, they need not be, just routable is fine
|
||||||
- name: Checking if kolla_internal_vip_address is in the same network as api_interface on all nodes
|
- name: Checking if kolla_internal_vip_address is in the same network as api_interface on all nodes
|
||||||
become: true
|
become: true
|
||||||
command: ip -o addr show dev {{ api_interface }}
|
command: ip -o addr show dev {{ api_interface }}
|
||||||
register: ip_addr_output
|
register: ip_addr_output
|
||||||
changed_when: false
|
changed_when: false
|
||||||
failed_when: >-
|
failed_when: >-
|
||||||
'169.254.' not in kolla_internal_vip_address and
|
|
||||||
( ip_addr_output is failed or
|
( ip_addr_output is failed or
|
||||||
kolla_internal_vip_address | ipaddr(ip_addr_output.stdout.split()[3]) is none)
|
kolla_internal_vip_address | ipaddr(ip_addr_output.stdout.split()[3]) is none)
|
||||||
when:
|
when:
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
---
|
---
|
||||||
- include_tasks: config.yml
|
- include_tasks: config.yml
|
||||||
|
|
||||||
- set_fact: secondary_addresses={{ hostvars[inventory_hostname]['ansible_' + api_interface].get('ipv4_secondaries', []) | map(attribute='address') | list }}
|
|
||||||
|
|
||||||
- name: Stopping all slave keepalived containers
|
- name: Stopping all slave keepalived containers
|
||||||
|
vars:
|
||||||
|
key: "{{ 'ipv6' if api_address_family == 'ipv6' else 'ipv4_secondaries' }}"
|
||||||
|
addresses: "{{ hostvars[inventory_hostname]['ansible_' + api_interface].get(key, []) | map(attribute='address') | list }}"
|
||||||
become: true
|
become: true
|
||||||
kolla_docker:
|
kolla_docker:
|
||||||
action: "stop_container"
|
action: "stop_container"
|
||||||
common_options: "{{ docker_common_options }}"
|
common_options: "{{ docker_common_options }}"
|
||||||
name: "keepalived"
|
name: "keepalived"
|
||||||
when: kolla_internal_vip_address not in secondary_addresses
|
when: kolla_internal_vip_address not in addresses
|
||||||
notify:
|
notify:
|
||||||
- Restart keepalived container
|
- Restart keepalived container
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ vrrp_instance kolla_internal_vip_{{ keepalived_virtual_router_id }} {
|
|||||||
{% if groups['haproxy'] | length > 1 %}
|
{% if groups['haproxy'] | length > 1 %}
|
||||||
unicast_peer {
|
unicast_peer {
|
||||||
{% for host in groups['haproxy'] %}
|
{% for host in groups['haproxy'] %}
|
||||||
{% set ip_addr = hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] %}
|
{% set ip_addr = 'api' | kolla_address(host) %}
|
||||||
{% if ip_addr != api_interface_address %}
|
{% if ip_addr != api_interface_address %}
|
||||||
{{ ip_addr }}
|
{{ ip_addr }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -55,7 +55,7 @@ heat_services:
|
|||||||
####################
|
####################
|
||||||
heat_database_name: "heat"
|
heat_database_name: "heat"
|
||||||
heat_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}heat{% endif %}"
|
heat_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}heat{% endif %}"
|
||||||
heat_database_address: "{{ database_address }}:{{ database_port }}"
|
heat_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -104,12 +104,12 @@ heat_engine_extra_volumes: "{{ heat_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
heat_admin_endpoint: "{{ admin_protocol }}://{{ heat_internal_fqdn }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
heat_admin_endpoint: "{{ admin_protocol }}://{{ heat_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||||
heat_internal_endpoint: "{{ internal_protocol }}://{{ heat_internal_fqdn }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
heat_internal_endpoint: "{{ internal_protocol }}://{{ heat_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||||
heat_public_endpoint: "{{ public_protocol }}://{{ heat_external_fqdn }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
heat_public_endpoint: "{{ public_protocol }}://{{ heat_external_fqdn | put_address_in_context('url') }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||||
heat_cfn_admin_endpoint: "{{ admin_protocol }}://{{ heat_cfn_internal_fqdn }}:{{ heat_api_cfn_port }}/v1"
|
heat_cfn_admin_endpoint: "{{ admin_protocol }}://{{ heat_cfn_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1"
|
||||||
heat_cfn_internal_endpoint: "{{ internal_protocol }}://{{ heat_cfn_internal_fqdn }}:{{ heat_api_cfn_port }}/v1"
|
heat_cfn_internal_endpoint: "{{ internal_protocol }}://{{ heat_cfn_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1"
|
||||||
heat_cfn_public_endpoint: "{{ public_protocol }}://{{ heat_cfn_external_fqdn }}:{{ heat_api_cfn_port }}/v1"
|
heat_cfn_public_endpoint: "{{ public_protocol }}://{{ heat_cfn_external_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1"
|
||||||
|
|
||||||
heat_logging_debug: "{{ openstack_logging_debug }}"
|
heat_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -3,8 +3,8 @@ debug = {{ heat_logging_debug }}
|
|||||||
|
|
||||||
log_dir = /var/log/kolla/heat
|
log_dir = /var/log/kolla/heat
|
||||||
|
|
||||||
heat_metadata_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn }}:{{ heat_api_cfn_port }}
|
heat_metadata_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}
|
||||||
heat_waitcondition_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn }}:{{ heat_api_cfn_port }}/v1/waitcondition
|
heat_waitcondition_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1/waitcondition
|
||||||
|
|
||||||
heat_stack_user_role = {{ heat_stack_user_role }}
|
heat_stack_user_role = {{ heat_stack_user_role }}
|
||||||
|
|
||||||
@ -52,13 +52,13 @@ password = {{ heat_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
[cache]
|
[cache]
|
||||||
backend = oslo_cache.memcache_pool
|
backend = oslo_cache.memcache_pool
|
||||||
enabled = True
|
enabled = True
|
||||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
[trustee]
|
[trustee]
|
||||||
|
@ -74,7 +74,7 @@ horizon_keystone_domain_choices:
|
|||||||
####################
|
####################
|
||||||
horizon_database_name: "horizon"
|
horizon_database_name: "horizon"
|
||||||
horizon_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}horizon{% endif %}"
|
horizon_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}horizon{% endif %}"
|
||||||
horizon_database_address: "{{ database_address }}:{{ database_port }}"
|
horizon_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Docker
|
# Docker
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{% set python_path = '/usr/share/openstack-dashboard' if horizon_install_type == 'binary' else '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
{% set python_path = '/usr/share/openstack-dashboard' if horizon_install_type == 'binary' else '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||||
|
|
||||||
Listen {{ api_interface_address }}:{{ horizon_listen_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ horizon_listen_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -179,7 +179,7 @@ SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
|
|||||||
CACHES = {
|
CACHES = {
|
||||||
'default': {
|
'default': {
|
||||||
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||||
'LOCATION': [{% for host in groups['memcached'] %}'{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}'{% if not loop.last %},{% endif %}{% endfor %}]
|
'LOCATION': [{% for host in groups['memcached'] %}'{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}'{% if not loop.last %},{% endif %}{% endfor %}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -36,7 +36,7 @@ reporting-disabled = true
|
|||||||
store-interval = "10s"
|
store-interval = "10s"
|
||||||
[http]
|
[http]
|
||||||
enabled = true
|
enabled = true
|
||||||
bind-address = "{{ api_interface_address }}:{{ influxdb_http_port }}"
|
bind-address = "{{ api_interface_address | put_address_in_context('url') }}:{{ influxdb_http_port }}"
|
||||||
auth-enabled = false
|
auth-enabled = false
|
||||||
log-enabled = true
|
log-enabled = true
|
||||||
write-tracing = false
|
write-tracing = false
|
||||||
|
@ -81,11 +81,11 @@ ironic_services:
|
|||||||
####################
|
####################
|
||||||
ironic_database_name: "ironic"
|
ironic_database_name: "ironic"
|
||||||
ironic_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}ironic{% endif %}"
|
ironic_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}ironic{% endif %}"
|
||||||
ironic_database_address: "{{ database_address }}:{{ database_port }}"
|
ironic_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
ironic_inspector_database_name: "ironic_inspector"
|
ironic_inspector_database_name: "ironic_inspector"
|
||||||
ironic_inspector_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}ironic_inspector{% endif %}"
|
ironic_inspector_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}ironic_inspector{% endif %}"
|
||||||
ironic_inspector_database_address: "{{ database_address }}:{{ database_port }}"
|
ironic_inspector_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -173,13 +173,13 @@ ironic_dnsmasq_extra_volumes: "{{ ironic_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
ironic_inspector_keystone_user: "ironic-inspector"
|
ironic_inspector_keystone_user: "ironic-inspector"
|
||||||
|
|
||||||
ironic_admin_endpoint: "{{ admin_protocol }}://{{ ironic_internal_fqdn }}:{{ ironic_api_port }}"
|
ironic_admin_endpoint: "{{ admin_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
|
||||||
ironic_internal_endpoint: "{{ internal_protocol }}://{{ ironic_internal_fqdn }}:{{ ironic_api_port }}"
|
ironic_internal_endpoint: "{{ internal_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
|
||||||
ironic_public_endpoint: "{{ public_protocol }}://{{ ironic_external_fqdn }}:{{ ironic_api_port }}"
|
ironic_public_endpoint: "{{ public_protocol }}://{{ ironic_external_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
|
||||||
|
|
||||||
ironic_inspector_admin_endpoint: "{{ admin_protocol }}://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}"
|
ironic_inspector_admin_endpoint: "{{ admin_protocol }}://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}"
|
||||||
ironic_inspector_internal_endpoint: "{{ internal_protocol }}://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}"
|
ironic_inspector_internal_endpoint: "{{ internal_protocol }}://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}"
|
||||||
ironic_inspector_public_endpoint: "{{ public_protocol }}://{{ ironic_inspector_external_fqdn }}:{{ ironic_inspector_port }}"
|
ironic_inspector_public_endpoint: "{{ public_protocol }}://{{ ironic_inspector_external_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}"
|
||||||
|
|
||||||
ironic_logging_debug: "{{ openstack_logging_debug }}"
|
ironic_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ ironic_dnsmasq_default_gateway:
|
|||||||
ironic_dnsmasq_boot_file: "{% if enable_ironic_ipxe | bool %}undionly.kpxe{% else %}pxelinux.0{% endif %}"
|
ironic_dnsmasq_boot_file: "{% if enable_ironic_ipxe | bool %}undionly.kpxe{% else %}pxelinux.0{% endif %}"
|
||||||
ironic_cleaning_network:
|
ironic_cleaning_network:
|
||||||
ironic_console_serial_speed: "115200n8"
|
ironic_console_serial_speed: "115200n8"
|
||||||
ironic_ipxe_url: http://{{ api_interface_address }}:{{ ironic_ipxe_port }}
|
ironic_ipxe_url: http://{{ api_interface_address | put_address_in_context('url') }}:{{ ironic_ipxe_port }}
|
||||||
ironic_enable_rolling_upgrade: "yes"
|
ironic_enable_rolling_upgrade: "yes"
|
||||||
ironic_inspector_kernel_cmdline_extras: []
|
ironic_inspector_kernel_cmdline_extras: []
|
||||||
ironic_inspector_pxe_filter: "{% if enable_neutron | bool %}dnsmasq{% else %}none{% endif %}"
|
ironic_inspector_pxe_filter: "{% if enable_neutron | bool %}dnsmasq{% else %}none{% endif %}"
|
||||||
|
@ -13,6 +13,6 @@ chain pxelinux.cfg/${mac:hexhyp} || goto inspector_ipa
|
|||||||
:inspector_ipa
|
:inspector_ipa
|
||||||
:retry_boot
|
:retry_boot
|
||||||
imgfree
|
imgfree
|
||||||
kernel --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.kernel ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes BOOTIF=${mac} initrd=ironic-agent.initramfs {{ ironic_inspector_kernel_cmdline_extras | join(' ') }} || goto retry_boot
|
kernel --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.kernel ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes BOOTIF=${mac} initrd=ironic-agent.initramfs {{ ironic_inspector_kernel_cmdline_extras | join(' ') }} || goto retry_boot
|
||||||
initrd --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.initramfs || goto retry_boot
|
initrd --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.initramfs || goto retry_boot
|
||||||
boot
|
boot
|
||||||
|
@ -1,13 +1,22 @@
|
|||||||
|
# NOTE(yoctozepto): ironic-dnsmasq is used to deliver DHCP(v6) service
|
||||||
|
# DNS service is disabled:
|
||||||
port=0
|
port=0
|
||||||
|
|
||||||
interface={{ ironic_dnsmasq_interface }}
|
interface={{ ironic_dnsmasq_interface }}
|
||||||
|
bind-interfaces
|
||||||
|
|
||||||
dhcp-range={{ ironic_dnsmasq_dhcp_range }}
|
dhcp-range={{ ironic_dnsmasq_dhcp_range }}
|
||||||
|
dhcp-sequential-ip
|
||||||
|
|
||||||
|
{% if api_address_family == 'ipv6' %}
|
||||||
|
{# TODO(yoctozepto): IPv6-only support - DHCPv6 PXE support #}
|
||||||
|
{# different options must be used here #}
|
||||||
|
{% else %}{# ipv4 #}
|
||||||
{% if ironic_dnsmasq_default_gateway is not none %}
|
{% if ironic_dnsmasq_default_gateway is not none %}
|
||||||
dhcp-option=3,{{ ironic_dnsmasq_default_gateway }}
|
dhcp-option=3,{{ ironic_dnsmasq_default_gateway }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
dhcp-option=option:tftp-server,{{ api_interface_address }}
|
dhcp-option=option:tftp-server,{{ api_interface_address }}
|
||||||
dhcp-option=option:server-ip-address,{{ api_interface_address }}
|
dhcp-option=option:server-ip-address,{{ api_interface_address }}
|
||||||
bind-interfaces
|
|
||||||
dhcp-sequential-ip
|
|
||||||
dhcp-option=210,/tftpboot/
|
dhcp-option=210,/tftpboot/
|
||||||
{% if enable_ironic_ipxe | bool %}
|
{% if enable_ironic_ipxe | bool %}
|
||||||
dhcp-match=ipxe,175
|
dhcp-match=ipxe,175
|
||||||
@ -20,6 +29,8 @@ dhcp-option=tag:ipxe,option:bootfile-name,{{ ironic_ipxe_url }}/inspector.ipxe
|
|||||||
dhcp-option=tag:efi,tag:!ipxe,option:bootfile-name,ipxe.efi
|
dhcp-option=tag:efi,tag:!ipxe,option:bootfile-name,ipxe.efi
|
||||||
{% endif %}
|
{% endif %}
|
||||||
dhcp-option=option:bootfile-name,{{ ironic_dnsmasq_boot_file }}
|
dhcp-option=option:bootfile-name,{{ ironic_dnsmasq_boot_file }}
|
||||||
|
{% endif %}{# ipv6/ipv4 #}
|
||||||
|
|
||||||
{% if ironic_inspector_pxe_filter == 'dnsmasq' %}
|
{% if ironic_inspector_pxe_filter == 'dnsmasq' %}
|
||||||
dhcp-hostsdir=/etc/dnsmasq/dhcp-hostsdir
|
dhcp-hostsdir=/etc/dnsmasq/dhcp-hostsdir
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -40,7 +40,7 @@ password = {{ ironic_inspector_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if ironic_policy_file is defined %}
|
{% if ironic_policy_file is defined %}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Listen {{ api_interface_address }}:{{ ironic_ipxe_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ ironic_ipxe_port }}
|
||||||
|
|
||||||
TraceEnable off
|
TraceEnable off
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ valid_interfaces = internal
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if enable_cinder | bool %}
|
{% if enable_cinder | bool %}
|
||||||
@ -151,7 +151,7 @@ region_name = {{ openstack_region_name }}
|
|||||||
valid_interfaces = internal
|
valid_interfaces = internal
|
||||||
{% else %}
|
{% else %}
|
||||||
auth_type = none
|
auth_type = none
|
||||||
endpoint_override = {{ internal_protocol }}://{{ ironic_internal_fqdn }}:{{ ironic_api_port }}
|
endpoint_override = {{ internal_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[agent]
|
[agent]
|
||||||
|
@ -2,6 +2,6 @@ default introspect
|
|||||||
|
|
||||||
label introspect
|
label introspect
|
||||||
kernel ironic-agent.kernel
|
kernel ironic-agent.kernel
|
||||||
append initrd=ironic-agent.initramfs ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes {{ ironic_inspector_kernel_cmdline_extras | join(' ') }}
|
append initrd=ironic-agent.initramfs ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes {{ ironic_inspector_kernel_cmdline_extras | join(' ') }}
|
||||||
|
|
||||||
ipappend 3
|
ipappend 3
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"command": "tgtd -d 1 -f --iscsi portal={{ api_interface_address }}:{{ iscsi_port }}",
|
"command": "tgtd -d 1 -f --iscsi portal={{ api_interface_address | put_address_in_context('url') }}:{{ iscsi_port }}",
|
||||||
"config_files": []
|
"config_files": []
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ kafka_services:
|
|||||||
kafka_cluster_name: "kolla_kafka"
|
kafka_cluster_name: "kolla_kafka"
|
||||||
kafka_log_dir: "/var/log/kolla/kafka"
|
kafka_log_dir: "/var/log/kolla/kafka"
|
||||||
kafka_heap_opts: "-Xmx1G -Xms1G"
|
kafka_heap_opts: "-Xmx1G -Xms1G"
|
||||||
kafka_zookeeper: "{% for host in groups['zookeeper'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
kafka_zookeeper: "{% for host in groups['zookeeper'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
kafka_broker_count: "{{ groups['kafka'] | length }}"
|
kafka_broker_count: "{{ groups['kafka'] | length }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
listeners=PLAINTEXT://{{ api_interface_address }}:{{ kafka_port }}
|
listeners=PLAINTEXT://{{ api_interface_address | put_address_in_context('url') }}:{{ kafka_port }}
|
||||||
controlled.shutdown.enable=true
|
controlled.shutdown.enable=true
|
||||||
auto.leader.rebalance.enable=true
|
auto.leader.rebalance.enable=true
|
||||||
num.network.threads=3
|
num.network.threads=3
|
||||||
|
@ -41,7 +41,7 @@ karbor_services:
|
|||||||
####################
|
####################
|
||||||
karbor_database_name: "karbor"
|
karbor_database_name: "karbor"
|
||||||
karbor_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}karbor{% endif %}"
|
karbor_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}karbor{% endif %}"
|
||||||
karbor_database_address: "{{ database_address }}:{{ database_port }}"
|
karbor_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -87,9 +87,9 @@ karbor_api_extra_volumes: "{{ karbor_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
karbor_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
karbor_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||||
karbor_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
karbor_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||||
karbor_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
karbor_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||||
|
|
||||||
karbor_logging_debug: "{{ openstack_logging_debug }}"
|
karbor_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ password = {{ karbor_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
[oslo_messaging_notifications]
|
||||||
transport_url = {{ notify_transport_url }}
|
transport_url = {{ notify_transport_url }}
|
||||||
|
@ -57,7 +57,7 @@ keystone_services:
|
|||||||
####################
|
####################
|
||||||
keystone_database_name: "keystone"
|
keystone_database_name: "keystone"
|
||||||
keystone_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}keystone{% endif %}"
|
keystone_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}keystone{% endif %}"
|
||||||
keystone_database_address: "{{ database_address }}:{{ database_port }}"
|
keystone_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
|
@ -11,6 +11,6 @@ fi
|
|||||||
# For each host node sync tokens
|
# For each host node sync tokens
|
||||||
{% for host in groups['keystone'] %}
|
{% for host in groups['keystone'] %}
|
||||||
{% if inventory_hostname != host %}
|
{% if inventory_hostname != host %}
|
||||||
/usr/bin/rsync -azu --delete -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' keystone@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:/etc/keystone/fernet-keys/ /etc/keystone/fernet-keys
|
/usr/bin/rsync -azu --delete -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' keystone@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:/etc/keystone/fernet-keys/ /etc/keystone/fernet-keys
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
{% for host in groups['keystone'] %}
|
{% for host in groups['keystone'] %}
|
||||||
{% if inventory_hostname != host %}
|
{% if inventory_hostname != host %}
|
||||||
/usr/bin/rsync -az -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' --delete /etc/keystone/fernet-keys/ keystone@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:/etc/keystone/fernet-keys
|
/usr/bin/rsync -az -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' --delete /etc/keystone/fernet-keys/ keystone@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:/etc/keystone/fernet-keys
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -46,7 +46,7 @@ max_active_keys = {{ ((fernet_token_expiry | int +
|
|||||||
[cache]
|
[cache]
|
||||||
backend = oslo_cache.memcache_pool
|
backend = oslo_cache.memcache_pool
|
||||||
enabled = True
|
enabled = True
|
||||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
[oslo_messaging_notifications]
|
||||||
transport_url = {{ notify_transport_url }}
|
transport_url = {{ notify_transport_url }}
|
||||||
@ -68,5 +68,5 @@ connection_string = {{ osprofiler_backend_connection_string }}
|
|||||||
|
|
||||||
{% if enable_grafana | bool %}
|
{% if enable_grafana | bool %}
|
||||||
[cors]
|
[cors]
|
||||||
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn }}:{{ grafana_server_port }}
|
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ grafana_server_port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% set binary_path = '/usr/bin' if keystone_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
{% set binary_path = '/usr/bin' if keystone_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||||
Listen {{ api_interface_address }}:{{ keystone_public_listen_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ keystone_public_listen_port }}
|
||||||
Listen {{ api_interface_address }}:{{ keystone_admin_listen_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ keystone_admin_listen_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
- name: Register the kibana index in elasticsearch
|
- name: Register the kibana index in elasticsearch
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana"
|
||||||
method: PUT
|
method: PUT
|
||||||
body: "{{ kibana_default_index_options | to_json }}"
|
body: "{{ kibana_default_index_options | to_json }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
- name: Wait for kibana to register in elasticsearch
|
- name: Wait for kibana to register in elasticsearch
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana"
|
||||||
status_code: 200
|
status_code: 200
|
||||||
register: result
|
register: result
|
||||||
until: result.status == 200
|
until: result.status == 200
|
||||||
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
- name: Change kibana config to set index as defaultIndex
|
- name: Change kibana config to set index as defaultIndex
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/config/*"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana/config/*"
|
||||||
method: PUT
|
method: PUT
|
||||||
body:
|
body:
|
||||||
defaultIndex: "{{ kibana_default_index_pattern }}"
|
defaultIndex: "{{ kibana_default_index_pattern }}"
|
||||||
@ -44,7 +44,7 @@
|
|||||||
uri:
|
uri:
|
||||||
headers:
|
headers:
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana"
|
||||||
method: GET
|
method: GET
|
||||||
register: kibana_default_indexes
|
register: kibana_default_indexes
|
||||||
run_once: true
|
run_once: true
|
||||||
@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
- name: Add index pattern to kibana
|
- name: Add index pattern to kibana
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/index-pattern/{{ kibana_default_index_pattern }}"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana/index-pattern/{{ kibana_default_index_pattern }}"
|
||||||
method: PUT
|
method: PUT
|
||||||
body: "{{ kibana_default_index | to_json }}"
|
body: "{{ kibana_default_index | to_json }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
|
@ -2,7 +2,7 @@ kibana.defaultAppId: "{{ kibana_default_app_id }}"
|
|||||||
logging.dest: /var/log/kolla/kibana/kibana.log
|
logging.dest: /var/log/kolla/kibana/kibana.log
|
||||||
server.port: {{ kibana_server_port }}
|
server.port: {{ kibana_server_port }}
|
||||||
server.host: "{{ api_interface_address }}"
|
server.host: "{{ api_interface_address }}"
|
||||||
elasticsearch.url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}"
|
elasticsearch.url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}"
|
||||||
elasticsearch.requestTimeout: {{ kibana_elasticsearch_request_timeout }}
|
elasticsearch.requestTimeout: {{ kibana_elasticsearch_request_timeout }}
|
||||||
elasticsearch.shardTimeout: {{ kibana_elasticsearch_shard_timeout }}
|
elasticsearch.shardTimeout: {{ kibana_elasticsearch_shard_timeout }}
|
||||||
elasticsearch.ssl.verificationMode: "{{ 'full' if kibana_elasticsearch_ssl_verify | bool else 'none' }}"
|
elasticsearch.ssl.verificationMode: "{{ 'full' if kibana_elasticsearch_ssl_verify | bool else 'none' }}"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
kuryr_uri = {{ internal_protocol }}://{{ api_interface_address }}:{{ kuryr_port }}
|
kuryr_uri = {{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ kuryr_port }}
|
||||||
debug = {{ kuryr_logging_debug }}
|
debug = {{ kuryr_logging_debug }}
|
||||||
log_dir = /var/log/kolla/kuryr
|
log_dir = /var/log/kolla/kuryr
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
http://{{ api_interface_address }}:{{ kuryr_port }}
|
http://{{ api_interface_address | put_address_in_context('url') }}:{{ kuryr_port }}
|
||||||
|
@ -37,7 +37,7 @@ magnum_services:
|
|||||||
####################
|
####################
|
||||||
magnum_database_name: "magnum"
|
magnum_database_name: "magnum"
|
||||||
magnum_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}magnum{% endif %}"
|
magnum_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}magnum{% endif %}"
|
||||||
magnum_database_address: "{{ database_address }}:{{ database_port }}"
|
magnum_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -85,9 +85,9 @@ magnum_conductor_extra_volumes: "{{ magnum_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
magnum_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ magnum_api_port }}/v1"
|
magnum_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ magnum_api_port }}/v1"
|
||||||
magnum_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ magnum_api_port }}/v1"
|
magnum_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ magnum_api_port }}/v1"
|
||||||
magnum_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ magnum_api_port }}/v1"
|
magnum_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ magnum_api_port }}/v1"
|
||||||
|
|
||||||
magnum_logging_debug: "{{ openstack_logging_debug }}"
|
magnum_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ password = {{ magnum_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[trust]
|
[trust]
|
||||||
trustee_domain_admin_password = {{ magnum_keystone_password }}
|
trustee_domain_admin_password = {{ magnum_keystone_password }}
|
||||||
|
@ -65,7 +65,7 @@ ceph_client_manila_keyring_caps:
|
|||||||
#####################
|
#####################
|
||||||
manila_database_name: "manila"
|
manila_database_name: "manila"
|
||||||
manila_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}manila{% endif %}"
|
manila_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}manila{% endif %}"
|
||||||
manila_database_address: "{{ database_address }}:{{ database_port }}"
|
manila_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
@ -129,12 +129,12 @@ manila_data_extra_volumes: "{{ manila_extra_volumes }}"
|
|||||||
#####################
|
#####################
|
||||||
## OpenStack
|
## OpenStack
|
||||||
#####################
|
#####################
|
||||||
manila_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
manila_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||||
manila_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
manila_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||||
manila_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
manila_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||||
manila_v2_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
manila_v2_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||||
manila_v2_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
manila_v2_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||||
manila_v2_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
manila_v2_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||||
|
|
||||||
manila_logging_debug: "{{ openstack_logging_debug }}"
|
manila_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ password = {{ cinder_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[nova]
|
[nova]
|
||||||
auth_uri = {{ keystone_internal_url }}
|
auth_uri = {{ keystone_internal_url }}
|
||||||
@ -35,10 +35,10 @@ password = {{ nova_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[neutron]
|
[neutron]
|
||||||
url = {{ internal_protocol }}://{{ neutron_internal_fqdn }}:{{ neutron_server_port }}
|
url = {{ internal_protocol }}://{{ neutron_internal_fqdn | put_address_in_context('url') }}:{{ neutron_server_port }}
|
||||||
auth_uri = {{ keystone_internal_url }}
|
auth_uri = {{ keystone_internal_url }}
|
||||||
auth_url = {{ keystone_admin_url }}
|
auth_url = {{ keystone_admin_url }}
|
||||||
auth_type = password
|
auth_type = password
|
||||||
@ -52,7 +52,7 @@ password = {{ neutron_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
{% if enable_manila_backend_generic | bool %}
|
{% if enable_manila_backend_generic | bool %}
|
||||||
[generic]
|
[generic]
|
||||||
|
@ -40,7 +40,7 @@ password = {{ manila_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
[oslo_messaging_notifications]
|
||||||
transport_url = {{ notify_transport_url }}
|
transport_url = {{ notify_transport_url }}
|
||||||
|
@ -45,7 +45,7 @@ database_max_timeout: 120
|
|||||||
####################
|
####################
|
||||||
# HAProxy
|
# HAProxy
|
||||||
####################
|
####################
|
||||||
internal_haproxy_members: "{% for host in groups['mariadb'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
internal_haproxy_members: "{% for host in groups['mariadb'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||||
external_haproxy_members: "{% for host in groups['mariadb'] %}server {{ host }} {{ host }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
external_haproxy_members: "{% for host in groups['mariadb'] %}server {{ host }} {{ host }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
|
@ -26,12 +26,12 @@ character-set-server = utf8
|
|||||||
|
|
||||||
datadir=/var/lib/mysql/
|
datadir=/var/lib/mysql/
|
||||||
|
|
||||||
wsrep_cluster_address=gcomm://{% if (groups['mariadb'] | length) > 1 %}{% for host in groups['mariadb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mariadb_wsrep_port }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %}
|
wsrep_cluster_address=gcomm://{% if (groups['mariadb'] | length) > 1 %}{% for host in groups['mariadb'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ mariadb_wsrep_port }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %}
|
||||||
|
|
||||||
wsrep_provider_options=gmcast.listen_addr=tcp://{{ api_interface_address }}:{{ mariadb_wsrep_port }};ist.recv_addr={{ api_interface_address }}:{{ mariadb_ist_port }}
|
wsrep_provider_options=gmcast.listen_addr=tcp://{{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_wsrep_port }};ist.recv_addr={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_ist_port }}
|
||||||
|
|
||||||
wsrep_node_address={{ api_interface_address }}:{{ mariadb_wsrep_port }}
|
wsrep_node_address={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_wsrep_port }}
|
||||||
wsrep_sst_receive_address={{ api_interface_address }}:{{ mariadb_sst_port }}
|
wsrep_sst_receive_address={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_sst_port }}
|
||||||
|
|
||||||
wsrep_provider={{ wsrep_driver }}
|
wsrep_provider={{ wsrep_driver }}
|
||||||
wsrep_cluster_name="{{ database_cluster_name }}"
|
wsrep_cluster_name="{{ database_cluster_name }}"
|
||||||
@ -61,3 +61,12 @@ innodb_lock_schedule_algorithm = FCFS
|
|||||||
|
|
||||||
[server]
|
[server]
|
||||||
pid-file=/var/lib/mysql/mariadb.pid
|
pid-file=/var/lib/mysql/mariadb.pid
|
||||||
|
|
||||||
|
[sst]
|
||||||
|
{% if sst_method == 'mariabackup' and api_address_family == 'ipv6' %}
|
||||||
|
# NOTE(yoctozepto): for IPv6 we need to tweak sockopt for socat (mariabackup sst backend)
|
||||||
|
# see: https://mariadb.com/kb/en/library/xtrabackup-v2-sst-method/#performing-ssts-with-ipv6-addresses
|
||||||
|
# and: https://jira.mariadb.org/browse/MDEV-18797
|
||||||
|
# this can be removed when MDEV-18797 is resolved
|
||||||
|
sockopt=",pf=ip6"
|
||||||
|
{% endif %}
|
||||||
|
@ -42,7 +42,7 @@ masakari_services:
|
|||||||
####################
|
####################
|
||||||
masakari_database_name: "masakari"
|
masakari_database_name: "masakari"
|
||||||
masakari_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}masakari{% endif %}"
|
masakari_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}masakari{% endif %}"
|
||||||
masakari_database_address: "{{ database_address }}:{{ database_port }}"
|
masakari_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Docker
|
# Docker
|
||||||
@ -92,9 +92,9 @@ masakari_instancemonitor_default_volumes:
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
masakari_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ masakari_api_port }}"
|
masakari_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ masakari_api_port }}"
|
||||||
masakari_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ masakari_api_port }}"
|
masakari_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ masakari_api_port }}"
|
||||||
masakari_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ masakari_api_port }}"
|
masakari_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ masakari_api_port }}"
|
||||||
|
|
||||||
masakari_logging_debug: "{{ openstack_logging_debug }}"
|
masakari_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -12,4 +12,4 @@ username = {{ masakari_keystone_user }}
|
|||||||
password = {{ masakari_keystone_password }}
|
password = {{ masakari_keystone_password }}
|
||||||
|
|
||||||
[libvirt]
|
[libvirt]
|
||||||
connection_uri = "qemu+tcp://{{ migration_interface_address }}/system"
|
connection_uri = "qemu+tcp://{{ migration_interface_address | put_address_in_context('url') }}/system"
|
||||||
|
@ -32,7 +32,7 @@ region_name = {{ openstack_region_name }}
|
|||||||
{% if enable_memcached | bool %}
|
{% if enable_memcached | bool %}
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
[oslo_messaging_notifications]
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% set binary_path = '/usr/bin' if masakari_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
{% set binary_path = '/usr/bin' if masakari_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||||
|
|
||||||
Listen {{ api_interface_address }}:{{ masakari_api_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ masakari_api_port }}
|
||||||
|
|
||||||
ServerSignature Off
|
ServerSignature Off
|
||||||
ServerTokens Prod
|
ServerTokens Prod
|
||||||
|
@ -25,7 +25,7 @@ memcached_services:
|
|||||||
####################
|
####################
|
||||||
# HAProxy
|
# HAProxy
|
||||||
####################
|
####################
|
||||||
haproxy_members: "{% for host in groups['memcached'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
haproxy_members: "{% for host in groups['memcached'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ memcached_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Docker
|
# Docker
|
||||||
|
@ -48,7 +48,7 @@ mistral_services:
|
|||||||
####################
|
####################
|
||||||
mistral_database_name: "mistral"
|
mistral_database_name: "mistral"
|
||||||
mistral_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}mistral{% endif %}"
|
mistral_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}mistral{% endif %}"
|
||||||
mistral_database_address: "{{ database_address }}:{{ database_port }}"
|
mistral_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -108,9 +108,9 @@ mistral_api_extra_volumes: "{{ mistral_extra_volumes }}"
|
|||||||
####################
|
####################
|
||||||
# OpenStack
|
# OpenStack
|
||||||
####################
|
####################
|
||||||
mistral_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ mistral_api_port }}/v2"
|
mistral_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}/v2"
|
||||||
mistral_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ mistral_api_port }}/v2"
|
mistral_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}/v2"
|
||||||
mistral_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ mistral_api_port }}/v2"
|
mistral_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}/v2"
|
||||||
|
|
||||||
mistral_logging_debug: "{{ openstack_logging_debug }}"
|
mistral_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -48,11 +48,11 @@ password = {{ mistral_keystone_password }}
|
|||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
memcache_security_strategy = ENCRYPT
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
memcache_secret_key = {{ memcache_secret_key }}
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
[mistral]
|
[mistral]
|
||||||
url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ mistral_api_port }}
|
url = {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}
|
||||||
|
|
||||||
[openstack_actions]
|
[openstack_actions]
|
||||||
os_actions_endpoint_type = internal
|
os_actions_endpoint_type = internal
|
||||||
|
@ -141,11 +141,11 @@ monasca_influxdb_retention_policy:
|
|||||||
####################
|
####################
|
||||||
# Monasca
|
# Monasca
|
||||||
####################
|
####################
|
||||||
monasca_kafka_servers: "{% for host in groups['kafka'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ kafka_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
monasca_kafka_servers: "{% for host in groups['kafka'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ kafka_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
monasca_zookeeper_servers: "{% for host in groups['zookeeper'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
monasca_zookeeper_servers: "{% for host in groups['zookeeper'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
monasca_memcached_servers: "{% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
monasca_memcached_servers: "{% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
monasca_elasticsearch_servers: "{% for host in groups['elasticsearch'] %}'{{ internal_protocol }}://{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ elasticsearch_port }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
monasca_elasticsearch_servers: "{% for host in groups['elasticsearch'] %}'{{ internal_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ elasticsearch_port }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
monasca_storm_nimbus_servers: "{% for host in groups['storm-nimbus'] %}'{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
monasca_storm_nimbus_servers: "{% for host in groups['storm-nimbus'] %}'{{ 'api' | kolla_address(host) }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
||||||
# NOTE(dszumski): Only one NTP server is currently supported by the Monasca Agent plugin
|
# NOTE(dszumski): Only one NTP server is currently supported by the Monasca Agent plugin
|
||||||
monasca_ntp_server: "{{ external_ntp_servers | first }}"
|
monasca_ntp_server: "{{ external_ntp_servers | first }}"
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ monasca_grafana_data_sources:
|
|||||||
name: "Monasca API"
|
name: "Monasca API"
|
||||||
type: "monasca-datasource"
|
type: "monasca-datasource"
|
||||||
access: "proxy"
|
access: "proxy"
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_api_port }}"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_api_port }}"
|
||||||
isDefault: True
|
isDefault: True
|
||||||
basicAuth: false
|
basicAuth: false
|
||||||
jsonData:
|
jsonData:
|
||||||
@ -329,13 +329,13 @@ monasca_agent_authorized_roles:
|
|||||||
monasca_delegate_authorized_roles:
|
monasca_delegate_authorized_roles:
|
||||||
- admin
|
- admin
|
||||||
|
|
||||||
monasca_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_api_port }}/v2.0"
|
monasca_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_api_port }}/v2.0"
|
||||||
monasca_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_api_port }}/v2.0"
|
monasca_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_api_port }}/v2.0"
|
||||||
monasca_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ monasca_api_port }}/v2.0"
|
monasca_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ monasca_api_port }}/v2.0"
|
||||||
|
|
||||||
monasca_log_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}"
|
monasca_log_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}"
|
||||||
monasca_log_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}"
|
monasca_log_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}"
|
||||||
monasca_log_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ monasca_log_api_port }}"
|
monasca_log_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}"
|
||||||
|
|
||||||
monasca_logging_debug: "{{ openstack_logging_debug }}"
|
monasca_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: Wait for Monasca Grafana to load
|
- name: Wait for Monasca Grafana to load
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/login"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/login"
|
||||||
status_code: 200
|
status_code: 200
|
||||||
register: result
|
register: result
|
||||||
until: result.get('status') == 200
|
until: result.get('status') == 200
|
||||||
@ -16,7 +16,7 @@
|
|||||||
- name: List Monasca Grafana organisations
|
- name: List Monasca Grafana organisations
|
||||||
uri:
|
uri:
|
||||||
method: GET
|
method: GET
|
||||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs'
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs"
|
||||||
user: '{{ monasca_grafana_admin_username }}'
|
user: '{{ monasca_grafana_admin_username }}'
|
||||||
password: '{{ monasca_grafana_admin_password }}'
|
password: '{{ monasca_grafana_admin_password }}'
|
||||||
return_content: true
|
return_content: true
|
||||||
@ -27,7 +27,7 @@
|
|||||||
- name: Create default control plane organisation if it doesn't exist
|
- name: Create default control plane organisation if it doesn't exist
|
||||||
uri:
|
uri:
|
||||||
method: POST
|
method: POST
|
||||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs'
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs"
|
||||||
user: '{{ monasca_grafana_admin_username }}'
|
user: '{{ monasca_grafana_admin_username }}'
|
||||||
password: '{{ monasca_grafana_admin_password }}'
|
password: '{{ monasca_grafana_admin_password }}'
|
||||||
body_format: json
|
body_format: json
|
||||||
@ -40,7 +40,7 @@
|
|||||||
- name: Lookup Monasca Grafana control plane organisation ID
|
- name: Lookup Monasca Grafana control plane organisation ID
|
||||||
uri:
|
uri:
|
||||||
method: GET
|
method: GET
|
||||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs/name/{{ monasca_grafana_control_plane_org }}'
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs/name/{{ monasca_grafana_control_plane_org }}"
|
||||||
user: '{{ monasca_grafana_admin_username }}'
|
user: '{{ monasca_grafana_admin_username }}'
|
||||||
password: '{{ monasca_grafana_admin_password }}'
|
password: '{{ monasca_grafana_admin_password }}'
|
||||||
return_content: true
|
return_content: true
|
||||||
@ -51,7 +51,7 @@
|
|||||||
- name: Add {{ monasca_grafana_admin_username }} user to control plane organisation
|
- name: Add {{ monasca_grafana_admin_username }} user to control plane organisation
|
||||||
uri:
|
uri:
|
||||||
method: POST
|
method: POST
|
||||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs/{{ monasca_grafana_conf_org.json.id }}/users'
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs/{{ monasca_grafana_conf_org.json.id }}/users"
|
||||||
user: '{{ monasca_grafana_admin_username }}'
|
user: '{{ monasca_grafana_admin_username }}'
|
||||||
password: '{{ monasca_grafana_admin_password }}'
|
password: '{{ monasca_grafana_admin_password }}'
|
||||||
body:
|
body:
|
||||||
@ -69,7 +69,7 @@
|
|||||||
- name: Switch Monasca Grafana to the control plane organisation
|
- name: Switch Monasca Grafana to the control plane organisation
|
||||||
uri:
|
uri:
|
||||||
method: POST
|
method: POST
|
||||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/user/using/{{ monasca_grafana_conf_org.json.id }}'
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/user/using/{{ monasca_grafana_conf_org.json.id }}"
|
||||||
user: '{{ monasca_grafana_admin_username }}'
|
user: '{{ monasca_grafana_admin_username }}'
|
||||||
password: '{{ monasca_grafana_admin_password }}'
|
password: '{{ monasca_grafana_admin_password }}'
|
||||||
force_basic_auth: true
|
force_basic_auth: true
|
||||||
@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
- name: Enable Monasca Grafana datasource for control plane organisation
|
- name: Enable Monasca Grafana datasource for control plane organisation
|
||||||
uri:
|
uri:
|
||||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/datasources"
|
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/datasources"
|
||||||
method: POST
|
method: POST
|
||||||
user: "{{ monasca_grafana_admin_username }}"
|
user: "{{ monasca_grafana_admin_username }}"
|
||||||
password: "{{ monasca_grafana_admin_password }}"
|
password: "{{ monasca_grafana_admin_password }}"
|
||||||
|
@ -6,7 +6,7 @@ region = {{ openstack_region_name }}
|
|||||||
|
|
||||||
[database]
|
[database]
|
||||||
database = {{ monasca_database_name }}
|
database = {{ monasca_database_name }}
|
||||||
connection = mysql+pymysql://{{ monasca_database_user }}:{{ monasca_database_password }}@{{ monasca_database_address }}:{{ monasca_database_port }}/{{ monasca_database_name }}
|
connection = mysql+pymysql://{{ monasca_database_user }}:{{ monasca_database_password }}@{{ monasca_database_address | put_address_in_context('url') }}:{{ monasca_database_port }}/{{ monasca_database_name }}
|
||||||
|
|
||||||
[influxdb]
|
[influxdb]
|
||||||
database_name = {{ monasca_influxdb_name }}
|
database_name = {{ monasca_influxdb_name }}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{% set python_path = '/usr/lib/python2.7/site-packages' if monasca_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
{% set python_path = '/usr/lib/python2.7/site-packages' if monasca_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||||
{% set wsgi_path = '/usr/bin' if monasca_install_type == 'binary' else '/monasca-api/monasca_api/api' %}
|
{% set wsgi_path = '/usr/bin' if monasca_install_type == 'binary' else '/monasca-api/monasca_api/api' %}
|
||||||
|
|
||||||
Listen {{ api_interface_address }}:{{ monasca_api_port }}
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ monasca_api_port }}
|
||||||
|
|
||||||
TraceEnable off
|
TraceEnable off
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user