{"id":581,"sha1":"ca36cf67baf4886602641fea06d1edca066a8546","playbook":{"id":4,"items":{"plays":32,"tasks":1505,"results":1497,"hosts":12,"files":487,"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":4,"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-08T13:57:07.871967Z","ended":"2025-12-08T14:21:54.049657Z","duration":"00:24:46.177690","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.11","server_version":"1.7.4","status":"failed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-openstack.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n# Copyright 2015, Rackspace US, Inc.\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# Special role execution lifecycles\n# Only create Gnocchi's identity entities in Keystone\ngnocchi_identity_only: false\n\n# Set the host which will execute the shade modules\n# for the service setup. The host must already have\n# clouds.yaml properly configured.\ngnocchi_service_setup_host: \"{{ openstack_service_setup_host | default('localhost') }}\"\ngnocchi_service_setup_host_python_interpreter: >-\n  {{\n    openstack_service_setup_host_python_interpreter | default(\n      (gnocchi_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable']))\n  }}\n\n# venv python version\ngnocchi_venv_python_executable: \"{{ openstack_venv_python_executable | default('python3') }}\"\n\n# Enable for debug logging level\ndebug: false\n\n# Set the package install state for distribution packages\n# Options are 'present' and 'latest'\ngnocchi_package_state: \"{{ package_state | default('latest') }}\"\n\n# Toggle keystone authentication for gnocchi\ngnocchi_auth_mode: \"keystone\"\n\n# These variables are used in 'developer mode' in order to allow the role\n# to build an environment directly from a git source without the presence\n# of an OpenStack-Ansible repo_server.\ngnocchi_git_repo: https://github.com/gnocchixyz/gnocchi\ngnocchi_git_install_branch: master\ngnocchi_upper_constraints_url: >-\n  {{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}\ngnocchi_git_constraints:\n  - \"--constraint {{ gnocchi_upper_constraints_url }}\"\n\ngnocchi_pip_install_args: \"{{ pip_install_options | default('') }}\"\n\n# Use of deprecated config options will cause a fatal application error\ngnocchi_fatal_deprecations: false\n\n# External SSL forwarding proto, assumes TLS termination at load balancer\ngnocchi_ssl_external: \"{{ openstack_external_ssl | default(True) }}\"\ngnocchi_secure_proxy_ssl_header: HTTP_X_FORWARDED_PROTO\n\n# Name of the virtual env to deploy into\ngnocchi_venv_tag: \"{{ venv_tag | default('untagged') }}\"\ngnocchi_bin: \"/openstack/venvs/gnocchi-{{ gnocchi_venv_tag }}/bin\"\ngnocchi_venv_pkgs: \"/openstack/venvs/gnocchi-{{ gnocchi_venv_tag }}/lib/python2.7/site-packages\"\n\n# Set the etc dir path where gnocchi is installed.\n#  This is used for role access to the db migrations.\n#  Example:\n#  gnocchi_etc_dir: \"/usr/local/etc/gnocchi\"\ngnocchi_etc_dir: \"{{ gnocchi_bin | dirname }}/etc/gnocchi\"\n\n# Index Database info\ngnocchi_db_setup_host: \"{{ openstack_db_setup_host | default('localhost') }}\"\ngnocchi_db_setup_python_interpreter: >-\n  {{\n    openstack_db_setup_python_interpreter | default(\n      (gnocchi_db_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable']))\n  }}\ngnocchi_galera_address: \"{{ galera_address | default('127.0.0.1') }}\"\ngnocchi_galera_database: gnocchi\ngnocchi_galera_user: gnocchi\ngnocchi_db_sync_options: \"\"\ngnocchi_galera_use_ssl: \"{{ galera_use_ssl | default(False) }}\"\ngnocchi_galera_ssl_ca_cert: \"{{ galera_ssl_ca_cert | default('') }}\"\ngnocchi_galera_port: \"{{ galera_port | default('3306') }}\"\n\n# Storage info\ngnocchi_storage_driver: file\ngnocchi_storage_file_basepath: \"{{ gnocchi_system_user_home }}\"\ngnocchi_storage_swift_container_prefix: \"gnocchi\"\ngnocchi_storage_redis_url: \"redis://localhost:6379/\"\n\ngnocchi_coordination_url: >-\n  mysql://{{ gnocchi_galera_user }}:{{ gnocchi_container_mysql_password }}@{{ gnocchi_galera_address }}/{{\n    gnocchi_galera_database }}?charset=utf8&timeout=5{%\n      if gnocchi_galera_use_ssl | bool %}&ssl_check_hostname=true{%\n        if gnocchi_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ gnocchi_galera_ssl_ca_cert }}{% endif %}{% endif %}\n\n# Incoming configuration\n# Incoming configuration is not applied if driver is the same as storage one\ngnocchi_incoming_driver: \"{{ gnocchi_storage_driver }}\"\ngnocchi_incoming_file_basepath: \"{{ gnocchi_storage_file_basepath }}\"\ngnocchi_incoming_swift_container_prefix: \"{{ gnocchi_storage_swift_container_prefix }}\"\ngnocchi_incoming_redis_url: \"{{ gnocchi_storage_redis_url }}\"\n\n# Default Ceph parameters\ngnocchi_ceph_pool: \"metrics\"\ngnocchi_ceph_username: \"gnocchi\"\n# If gnocchi_storage_driver == gnocchi_incoming_driver this would have no effect\ngnocchi_ceph_incoming_pool: \"{{ gnocchi_ceph_pool }}\"\ngnocchi_ceph_incoming_username: \"{{ gnocchi_ceph_username }}\"\n\n# System info\ngnocchi_system_user_name: gnocchi\ngnocchi_system_group_name: gnocchi\ngnocchi_system_shell: /bin/false\ngnocchi_system_comment: gnocchi system user\ngnocchi_system_user_home: \"/var/lib/{{ gnocchi_system_user_name }}\"\n\n# Service Type and Data\ngnocchi_service_name: gnocchi\ngnocchi_service_type: metric\ngnocchi_service_description: \"OpenStack Metric Service\"\ngnocchi_service_project_description: \"OpenStack Services\"\ngnocchi_keystone_auth_plugin: \"{{ gnocchi_keystone_auth_type }}\"\ngnocchi_keystone_auth_type: password\ngnocchi_service_region: \"{{ service_region | default('RegionOne') }}\"\ngnocchi_service_user_name: gnocchi\ngnocchi_service_role_names:\n  - admin\n  - service\ngnocchi_service_token_roles:\n  - service\ngnocchi_service_token_roles_required: \"{{ openstack_service_token_roles_required | default(True) }}\"\ngnocchi_service_project_name: service\ngnocchi_service_project_domain_id: default\ngnocchi_service_user_domain_id: default\ngnocchi_service_address: \"{{ openstack_service_bind_address | default('0.0.0.0') }}\"\ngnocchi_service_port: 8041\ngnocchi_service_proto: http\ngnocchi_service_registry_proto: \"{{ gnocchi_service_proto }}\"\ngnocchi_service_publicuri_proto: \"{{ openstack_service_publicuri_proto | default(gnocchi_service_proto) }}\"\ngnocchi_service_adminuri_proto: \"{{ openstack_service_adminuri_proto | default(gnocchi_service_proto) }}\"\ngnocchi_service_internaluri_proto: \"{{ openstack_service_internaluri_proto | default(gnocchi_service_proto) }}\"\ngnocchi_service_publicuri: \"{{ gnocchi_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ gnocchi_service_port }}\"\ngnocchi_service_publicurl: \"{{ gnocchi_service_publicuri }}\"\ngnocchi_service_internaluri: \"{{ gnocchi_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ gnocchi_service_port }}\"\ngnocchi_service_internalurl: \"{{ gnocchi_service_internaluri }}\"\ngnocchi_service_adminuri: \"{{ gnocchi_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ gnocchi_service_port }}\"\ngnocchi_service_adminurl: \"{{ gnocchi_service_adminuri }}\"\n\ngnocchi_service_in_ldap: \"{{ service_ldap_backend_enabled | default(False) }}\"\n\n## uWSGI setup\ngnocchi_wsgi_threads: 1\ngnocchi_wsgi_processes_max: 16\ngnocchi_wsgi_processes: >-\n  {{ [[(ansible_facts['processor_vcpus'] // ansible_facts['processor_threads_per_core']) | default(1), 1] | max * 2, gnocchi_wsgi_processes_max] | min }}\ngnocchi_uwsgi_tls:\n  crt: \"{{ gnocchi_ssl_cert }}\"\n  key: \"{{ gnocchi_ssl_key }}\"\n\ngnocchi_metricd_workers_max: 16\ngnocchi_metricd_workers: >-\n  {{ [[(ansible_facts['processor_vcpus'] // ansible_facts['processor_threads_per_core']) | default(1), 1] | max * 2, gnocchi_metricd_workers_max] | min }}\n\ngnocchi_uwsgi_conf_overrides: {}\ngnocchi_api_init_overrides: {}\ngnocchi_metricd_init_overrides: {}\n\n## Service Names\ngnocchi_services:\n  gnocchi-api:\n    group: \"gnocchi_api\"\n    service_name: \"gnocchi-api\"\n    service_enabled: true\n    init_config_overrides: \"{{ gnocchi_api_init_overrides }}\"\n    wsgi_app: true\n    wsgi_path: \"{{ gnocchi_bin }}/gnocchi-api\"\n    uwsgi_bind_address: \"{{ gnocchi_service_address }}\"\n    uwsgi_port: \"{{ gnocchi_service_port }}\"\n    uwsgi_overrides: \"{{ gnocchi_uwsgi_conf_overrides }}\"\n    uwsgi_tls: \"{{ gnocchi_backend_ssl | ternary(gnocchi_uwsgi_tls, {}) }}\"\n  gnocchi-metricd:\n    group: \"gnocchi_metricd\"\n    service_name: \"gnocchi-metricd\"\n    service_enabled: true\n    init_config_overrides: \"{{ gnocchi_metricd_init_overrides }}\"\n    execstarts: \"{{ gnocchi_bin }}/gnocchi-metricd\"\n\ngnocchi_pip_package_extras:\n  - \"{{ (gnocchi_auth_mode == 'keystone') | ternary('keystone', '') }}\"\n  - mysql\n  - \"{{ gnocchi_storage_driver_pip_extra }}\"\n  - \"{{ gnocchi_incoming_driver_pip_extra }}\"\n\n# Common pip packages\ngnocchi_pip_packages:\n  - cryptography\n  - \"git+{{ gnocchi_git_repo }}@{{ gnocchi_git_install_branch }}#egg=gnocchi[{{ gnocchi_pip_package_extras | unique | reject('equalto', '') | join(',') }}]\"\n  - gnocchiclient\n  - osprofiler\n  - pymemcache\n  - python-memcached\n  - kazoo\n  - systemd-python\n\n# Memcached override\ngnocchi_memcached_servers: \"{{ memcached_servers }}\"\n\n# Tunable file-based overrides\n# The contents of these files, if they exist, are read from the\n# specified path on the deployment host, interpreted by the\n# template engine and copied to the target host. If they do\n# not exist then the default files will be sourced from the\n# service git repository.\ngnocchi_api_paste_default_file_path: \"/etc/openstack_deploy/gnocchi/api-paste.ini\"\ngnocchi_policy_default_file_path: \"/etc/openstack_deploy/gnocchi/policy.yaml\"\n\n# If the above-mentioned files do not exist, then these\n# paths will be used to find the files from the git config\n# lookup location.\ngnocchi_git_config_lookup_location: https://raw.githubusercontent.com/gnocchixyz/gnocchi/{{ gnocchi_git_install_branch }}/\ngnocchi_api_paste_git_file_path: \"gnocchi/rest/api-paste.ini\"\n\n# Tunable var-based overrides\n# The contents of these are templated over the default files.\ngnocchi_api_paste_ini_overrides: {}\ngnocchi_conf_overrides: {}\ngnocchi_policy_overrides: {}\n\n###\n### Backend TLS\n###\n\n# Define if communication between haproxy and service backends should be\n# encrypted with TLS.\ngnocchi_backend_ssl: \"{{ openstack_service_backend_ssl | default(False) }}\"\n\n# Storage location for SSL certificate authority\ngnocchi_pki_dir: \"{{ openstack_pki_dir | default('/etc/openstack_deploy/pki') }}\"\n\n# Delegated host for operating the certificate authority\ngnocchi_pki_setup_host: \"{{ openstack_pki_setup_host | default('localhost') }}\"\n\n# gnocchi server certificate\ngnocchi_pki_keys_path: \"{{ gnocchi_pki_dir ~ '/certs/private/' }}\"\ngnocchi_pki_certs_path: \"{{ gnocchi_pki_dir ~ '/certs/certs/' }}\"\ngnocchi_pki_intermediate_cert_name: \"{{ openstack_pki_service_intermediate_cert_name | default('ExampleCorpIntermediate') }}\"\ngnocchi_pki_regen_cert: \"\"\ngnocchi_pki_san: \"{{ openstack_pki_san | default('DNS:' ~ ansible_facts['hostname'] ~ ',IP:' ~ management_address) }}\"\ngnocchi_pki_certificates:\n  - name: \"gnocchi_{{ ansible_facts['hostname'] }}\"\n    provider: ownca\n    cn: \"{{ ansible_facts['hostname'] }}\"\n    san: \"{{ gnocchi_pki_san }}\"\n    signed_by: \"{{ gnocchi_pki_intermediate_cert_name }}\"\n\n# gnocchi destination files for SSL certificates\ngnocchi_ssl_cert: /etc/gnocchi/gnocchi.pem\ngnocchi_ssl_key: /etc/gnocchi/gnocchi.key\n\n# Installation details for SSL certificates\ngnocchi_pki_install_certificates:\n  - src: \"{{ gnocchi_user_ssl_cert | default(gnocchi_pki_certs_path ~ 'gnocchi_' ~ ansible_facts['hostname'] ~ '-chain.crt') }}\"\n    dest: \"{{ gnocchi_ssl_cert }}\"\n    owner: \"{{ gnocchi_system_user_name }}\"\n    group: \"{{ gnocchi_system_user_name }}\"\n    mode: \"0644\"\n  - src: \"{{ gnocchi_user_ssl_key | default(gnocchi_pki_keys_path ~ 'gnocchi_' ~ ansible_facts['hostname'] ~ '.key.pem') }}\"\n    dest: \"{{ gnocchi_ssl_key }}\"\n    owner: \"{{ gnocchi_system_user_name }}\"\n    group: \"{{ gnocchi_system_user_name }}\"\n    mode: \"0600\"\n\n# Define user-provided SSL certificates\n# gnocchi_user_ssl_cert: <path to cert on ansible deployment host>\n# gnocchi_user_ssl_key: <path to cert on ansible deployment host>\n","created":"2025-12-08T13:57:16.318171Z","updated":"2025-12-08T13:57:16.318184Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible-os_gnocchi/defaults/main.yml"}