{"id":8,"sha1":"f6612413a6956e0bfd32db63f189d6b490a257f8","playbook":{"id":1,"items":{"plays":1,"tasks":154,"results":154,"hosts":1,"files":22,"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-14T10:02:53.495102Z","ended":"2025-12-14T10:04:31.439747Z","duration":"00:01:37.944645","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.13.5","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/bootstrap-aio.yml","controller":"np02505b6944e64","user":"root"},"content":"---\n# Copyright 2025, Cleura AB.\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 sparse files\n  ansible.builtin.command: \"truncate -s {{ item.size }}G {{ item.path }}\"\n  loop: \"{{ _loopback_device_data['sparse'] }}\"\n  args:\n    creates: \"{{ item.path }}\"\n  tags:\n    - spare-file-create\n\n- name: Format the file if needed\n  community.general.filesystem:\n    fstype: \"{{ item['fstype'] | default(omit) }}\"\n    opts: \"{{ item['opts'] | default(omit) }}\"\n    dev: \"{{ item['path'] }}\"\n  loop: \"{{ _loopback_device_data['fs'] }}\"\n\n- name: Run the systemd mount role\n  ansible.builtin.include_role:\n    name: systemd_mount\n  vars:\n    systemd_mounts: \"{{ _loopback_device_data['mounts'] }}\"\n\n- name: Run the systemd service role\n  ansible.builtin.include_role:\n    name: systemd_service\n  vars:\n    systemd_services: |-\n      {% set services = [] %}\n      {% for service in _loopback_device_data['services'] %}\n      {% set _ = services.append({\n                    'service_name': service['name'],\n                    'config_overrides': {\n                      'Unit': {\n                        'Description': false,\n                        'After': 'systemd-udev-settle.service',\n                        'Before': 'lvm2-activation-early.service',\n                        'Wants': 'systemd-udev-settle.service',\n                      },\n                      'Service': {'RemainAfterExit': true},\n                    },\n                    'service_type': 'oneshot',\n                    'execstarts': service['execstarts'],\n                    'execstops': service['execstops'],\n                    'enabled': true,\n                    'state': 'started',\n      }) %}\n      {% endfor %}\n      {{ services }}\n    systemd_tempd_prefix: openstack\n\n- name: Add LVM Volume Groups\n  community.general.lvg:\n    vg: \"{{ item.vg }}\"\n    pvs: \"{{ item.pvs }}\"\n  loop: \"{{ _loopback_device_data['lvm'] }}\"\n  tags:\n    - create-lvm-vg\n\n- name: Create LVM Logical Volumes\n  community.general.lvol:\n    lv: \"{{ item.lv }}\"\n    vg: \"{{ item.vg }}\"\n    size: 100%VG\n  loop: \"{{ _loopback_device_data['lvm'] }}\"\n  when:\n    - \"'lv' in item\"\n  tags:\n    - create-lvm-lv\n","created":"2025-12-14T10:02:53.903599Z","updated":"2025-12-14T10:02:53.903610Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/roles/bootstrap-host/tasks/prepare_loopback.yml"}