{"id":22,"sha1":"f9558ed0eeac8edf6b535414f4d399eeb60a0340","playbook":{"id":1,"items":{"plays":1,"tasks":156,"results":156,"hosts":1,"files":23,"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/tests/test-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":10,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["bootstrap-aio.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-08T13:39:11.689492Z","ended":"2025-12-08T13:40:06.108827Z","duration":"00:00:54.419335","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.11","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/bootstrap-aio.yml","controller":"np02e11c14dcea4","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- name: Create the required deployment directories\n  ansible.builtin.file:\n    path: \"{{ item }}\"\n    state: directory\n    mode: \"0755\"\n  with_items: \"{{ bootstrap_host_target_config_paths }}\"\n  tags:\n    - create-directories\n\n- name: Find user conf.d configurations to deploy\n  ansible.builtin.stat:\n    path: \"{{ bootstrap_host_aio_config_path }}/conf.d/{{ item }}.yml.aio\"\n  register: conf_d_stat\n  with_items: \"{{ bootstrap_host_scenarios_expanded }}\"\n\n- name: Deploy user conf.d configuration\n  openstack.config_template.config_template:\n    src: \"{{ bootstrap_host_aio_config_path }}/conf.d/{{ item.item }}.yml.aio\"\n    dest: \"/etc/openstack_deploy/conf.d/{{ item.item }}.yml\"\n    config_overrides: \"{{ item.item.override | default({}) }}\"\n    config_type: \"yaml\"\n  with_items: \"{{ conf_d_stat.results | default([]) }}\"\n  loop_control:\n    label: \"{{ item.item }}\"\n  when:\n    - item.stat.exists | bool\n  tags:\n    - deploy-confd\n\n- name: Deploy openstack_user_config\n  openstack.config_template.config_template:\n    src: \"{{ bootstrap_host_aio_config_path }}/openstack_user_config.yml.aio.j2\"\n    dest: \"/etc/openstack_deploy/openstack_user_config.yml\"\n    config_overrides: \"{{ openstack_user_config_overrides | default({}) }}\"\n    config_type: \"yaml\"\n    list_extend: false\n  tags:\n    - deploy-openstack-user-config\n\n- name: Deploy user_secrets file\n  openstack.config_template.config_template:\n    src: \"{{ bootstrap_host_aio_config_path }}/user_secrets.yml\"\n    dest: \"/etc/openstack_deploy/{{ bootstrap_host_user_secrets_filename }}\"\n    config_overrides: \"{{ user_secrets_overrides | default({}) }}\"\n    config_type: \"yaml\"\n    force: false\n  tags:\n    - deploy-user-secrets\n\n- name: Generate any missing values in user_secrets\n  ansible.builtin.command: >\n    /opt/ansible-runtime/bin/python\n    {{ bootstrap_host_aio_script_path }}/pw-token-gen.py\n    --file /etc/openstack_deploy/{{ bootstrap_host_user_secrets_filename }}\n  changed_when: false\n  tags:\n    - generate_secrets\n\n- name: Set facts when inside of OpenStack-Infra\n  when:\n    - nodepool_vars is defined\n  block:\n    - name: Configure the OpenStack-Infra mirrors\n      vars:\n        _ubuntu_vars:\n          apt_repo_url: \"{{ nodepool_vars.NODEPOOL_UCA_MIRROR }}\"\n        _ubuntu_conditional_vars: \"{{ (ansible_facts['distribution'] == 'Ubuntu') | ternary(_ubuntu_vars, {}) }}\"\n        nodepool_overrides:\n          openstack_hosts_centos_mirror_url: \"{{ nodepool_vars.NODEPOOL_CENTOS_MIRROR }}\"\n          # NOTE: EPEL10 mirrors are not around yet\n          # centos_epel_mirror: \"{{ nodepool_vars.NODEPOOL_EPEL_MIRROR }}\"\n          # galera_repo_host: \"{{ nodepool_vars.NODEPOOL_MIRROR_HOST }}:8080\"\n          nova_virt_type: 'qemu'\n          # NOTE(jrosser)\n          # we only run ceph jobs on ubuntu in CI so this is sufficient\n          # NOTE(jrosser)\n          # re-enable these local CI repos when the reef release is mirrored\n          # ceph_stable_repo: \"http://{{ nodepool_vars.NODEPOOL_MIRROR_HOST }}/ceph-deb-reef\"\n          # we must set the ceph repo seperatley for the ceph_client role\n          # ceph_apt_repos:\n          #  ceph:\n          #    state: \"present\"\n          #    repo: \"deb http://{{ nodepool_vars.NODEPOOL_MIRROR_HOST }}/ceph-deb-reef {{ ansible_facts['distribution_release'] }} main\"\n      ansible.builtin.copy:\n        dest: /etc/openstack_deploy/user_openstackci.yml\n        content: \"{{ (nodepool_overrides | combine(_ubuntu_conditional_vars)) | to_nice_yaml }}\"\n        mode: \"0644\"\n\n    - name: Set the package cache timeout to 60 mins in OpenStack-CI\n      ansible.builtin.set_fact:\n        cache_timeout: 3600\n      when:\n        - cache_timeout is not defined\n\n# NOTE(mhayden): The OpenStack CI images for CentOS recently set SELinux to\n# Enforcing mode by default. While I am normally a supporter of this change,\n# the SELinux policy work for CentOS is not done yet.\n- name: Set SELinux to permissive mode in OpenStack-CI\n  ansible.posix.selinux:\n    policy: targeted\n    state: permissive\n  when:\n    - ansible_facts['selinux']['status'] == \"enabled\"\n\n- name: Create vars override folders if we need to test them\n  ansible.builtin.file:\n    path: \"{{ item }}\"\n    state: directory\n    mode: \"0755\"\n  with_items:\n    - /etc/openstack_deploy/group_vars\n    - /etc/openstack_deploy/host_vars\n    - /etc/openstack_deploy/host_vars/aio1\n\n- name: Set the user_variables\n  openstack.config_template.config_template:\n    src: \"{{ bootstrap_user_variables_template }}\"\n    dest: \"/etc/openstack_deploy/{{ bootstrap_host_user_variables_filename }}\"\n    config_overrides: \"{{ user_variables_overrides | default({}) }}\"\n    config_type: yaml\n\n- name: Set http proxy user variables\n  ansible.builtin.copy:\n    src: \"user_variables_proxy.yml\"\n    dest: \"/etc/openstack_deploy/user_variables_proxy.yml\"\n    mode: \"0644\"\n  when:\n    - \"lookup('env', 'http_proxy')|length > 0\"\n\n- name: Drop the extra user_variables files for this scenario\n  openstack.config_template.config_template:\n    src: \"{{ item.src }}\"\n    dest: \"/etc/openstack_deploy/{{ item.dest }}\"\n    config_overrides: \"{{ item.config_overrides | default({}) }}\"\n    config_type: yaml\n  when:\n    - \"item.condition | bool\"\n  with_items:\n    - src: aio1_networks.yml.j2\n      dest: host_vars/aio1/networks.yml\n      condition: true\n    - src: aio1_kernel.yml.j2\n      dest: host_vars/aio1/kernel.yml\n      condition: true\n    - src: user_variables_ceph.yml.j2\n      dest: user_variables_ceph.yml\n      condition: \"{{ 'ceph' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_translations.yml.j2\n      dest: user_variables_translations.yml\n      condition: \"{{ 'translations' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_barbican.yml.j2\n      dest: user_variables_barbican.yml\n      condition: \"{{ 'barbican' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_blazar.yml.j2\n      dest: user_variables_blazar.yml\n      condition: \"{{ 'blazar' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_magnum.yml.j2\n      dest: user_variables_magnum.yml\n      condition: \"{{ 'magnum' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_manila.yml.j2\n      dest: user_variables_manila.yml\n      condition: \"{{ 'manila' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_nfs.yml.j2\n      dest: user_variables_nfs.yml\n      condition: \"{{ 'nfs' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_zun.yml.j2\n      dest: user_variables_zun.yml\n      condition: \"{{ 'zun' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_octavia.yml.j2\n      dest: user_variables_octavia.yml\n      condition: \"{{ 'octavia' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_ironic.yml.j2\n      dest: user_variables_ironic.yml\n      condition: \"{{ 'ironic' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_horizon.yml.j2\n      dest: user_variables_horizon.yml\n      condition: \"{{ 'horizon' in bootstrap_host_scenarios }}\"\n    - src: user_variables_hardening.yml.j2\n      dest: user_variables_hardening.yml\n      condition: \"{{ 'hardening' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_stepca.yml.j2\n      dest: user_variables_stepca.yml\n      condition: \"{{ 'stepca' in bootstrap_host_scenarios_expanded }}\"\n    - src: user_variables_tls.yml.j2\n      dest: user_variables_tls.yml\n      condition: \"{{ 'tls' in bootstrap_host_scenarios_expanded }}\"\n\n- name: Copy modified cinder-volume env.d file for ceph scenario\n  ansible.builtin.copy:\n    src: \"{{ playbook_dir }}/../etc/openstack_deploy/env.d/cinder-volume.yml.container.example\"\n    dest: \"/etc/openstack_deploy/env.d/cinder-volume.yml\"\n    mode: \"0644\"\n  when:\n    - \"'ceph' in bootstrap_host_scenarios_expanded\"\n\n- name: Create user-space overrides\n  ansible.builtin.lineinfile:\n    path: \"{{ item.path }}\"\n    state: present\n    line: \"{{ item.line }}\"\n    create: true\n    mode: \"0644\"\n  with_items:\n    - path: /etc/openstack_deploy/group_vars/hosts.yml\n      line: 'babar: \"elephant\"'\n    - path: /etc/openstack_deploy/group_vars/hosts.yml\n      line: 'lxc_hosts_package_state: \"present\"'\n    - path: /etc/openstack_deploy/host_vars/localhost.yml\n      line: 'security_package_state: \"present\"'\n    - path: /etc/openstack_deploy/host_vars/localhost.yml\n      line: 'tintin: \"milou\"'\n  when: \"(lookup('env','ACTION') | default(false,true)) == 'varstest'\"\n","created":"2025-12-08T13:39:57.756844Z","updated":"2025-12-08T13:39:57.756856Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml"}