{"id":781,"sha1":"2e505d34a2f489b94179439598cdbdbe46056314","playbook":{"id":5,"items":{"plays":108,"tasks":618,"results":960,"hosts":9,"files":456,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":null,"remote_user":null,"connection":"openstack.osa.ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":true,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/dynamic_inventory.py","/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/inventory.ini","/etc/openstack_deploy/inventory.ini"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":8,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["setup-openstack.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-15T10:19:13.597292Z","ended":"2025-12-15T10:42:26.420131Z","duration":"00:23:12.822839","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.3","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-openstack.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n# Copyright 2022, BBC R&D\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n_skyline_is_first_play_host: >-\n  {{\n    (skyline_services['skyline-api']['group'] in group_names and inventory_hostname == (\n      groups[skyline_services['skyline-api']['group']] | select('in', ansible_play_hosts)) | first) | bool\n  }}\n\nskyline_package_list: \"{{ skyline_distro_packages }}\"\n\n# Compile a list of the services on a host based on whether\n# the host is in the host group and the service is enabled.\n# The service list is provided in the defined start order.\nfiltered_skyline_services: |-\n  {% set services = [] %}\n  {% for key, value in skyline_services.items() %}\n  {%   set _ = value.update({'service_key': key}) %}\n  {%   set _ = services.append(value) %}\n  {% endfor %}\n  {{ services | sort(attribute='start_order') }}\n\nskyline_service_mapping:\n  baremetal: ironic\n  compute: nova\n  container: zun\n  container-infra: magnum\n  database: trove\n  dns: designate\n  identity: keystone\n  image: glance\n  instance-ha: masakari\n  key-manager: barbican\n  load-balancer: octavia\n  network: neutron\n  object-store: swift\n  orchestration: heat\n  placement: placement\n  sharev2: manilav2\n  block-storage: cinder\n\n_skyline_default_locations:\n  - path: /api/openstack/skyline/\n    options:\n      - ProxyPass http://127.0.0.1:8443/\n      - ProxyPassReverse Off\n      - ProxyPreserveHost On\n  - path: /api/v1/\n    options:\n      - ProxyPass http://127.0.0.1:8443/\n      - ProxyPassReverse Off\n      - ProxyPreserveHost On\n\n_skyline_service_locations: |-\n  {% set locations = [] %}\n  {% for endpoint in openstack_service_endpoints %}\n  {%   set _region = endpoint[\"Region\"] | lower %}\n  {%   set _type = (endpoint[\"Service Type\"] | lower) %}\n  {%   set _url = endpoint[\"URL\"] | urlsplit %}\n  {%   if _type in skyline_service_mapping %}\n  {%     set _service = skyline_service_mapping[_type] %}\n  {%     set _ = locations.append({\n           'path': '/api/openstack/' ~ _region ~ '/' ~ _service ~ '/',\n           'options': [\n             'ProxyPass ' ~ _url.scheme ~ '://' ~ _url.hostname ~ ':' ~ _url.port ~ '/ flushpackets=on',\n             'ProxyPassReverse ' ~ _url.scheme ~ '://' ~ _url.hostname ~ ':' ~ _url.port ~ '/',\n             'ProxyPreserveHost On'\n           ]\n         })\n  %}\n  {%   endif %}\n  {% endfor %}\n  {{ locations }}\n\n_skyline_proxy_ssl_options:\n  - \"SSLProxyEngine On\"\n  - \"SSLProxyCheckPeerName off\"\n  - \"SSLProxyProtocol {{ skyline_ssl_protocol }}\"\n  - \"{{ skyline_ssl_cipher_suite_tls12 | ternary('SSLProxyCipherSuite '  ~ skyline_ssl_cipher_suite_tls12, '') }}\"\n  - \"{{ skyline_ssl_cipher_suite_tls13 | ternary('SSLProxyCipherSuite TLSv1.3 ' ~ skyline_ssl_cipher_suite_tls13, '') }}\"\n\n_skyline_httpd_vhost_ssl: |-\n  {% set ssl_options = {} %}\n  {% if (skyline_user_ssl_cert is defined and skyline_user_ssl_cert) and (skyline_user_ssl_key is defined and skyline_user_ssl_key) %}\n  {%   set _ = ssl_options.update({'cert': skyline_user_ssl_cert, 'key': skyline_user_ssl_key}) %}\n  {%   if skyline_user_ssl_ca_cert is defined and skyline_user_ssl_ca_cert %}\n  {%     set _ = ssl_options.update({'ca': skyline_user_ssl_ca_cert}) %}\n  {%   endif %}\n  {% else %}\n  {%   set _ = ssl_options.update({'san': skyline_pki_san}) %}\n  {% endif %}\n  {{ ssl_options }}\n","created":"2025-12-15T10:19:33.637971Z","updated":"2025-12-15T10:19:33.637999Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible-os_skyline/vars/main.yml"}