No config file found; using defaults [WARNING]: No inventory was parsed, only implicit localhost is available [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' PLAY [Build a RHEL9.3 cloud image suitable for Zuul] *************************** TASK [Gathering Facts] ********************************************************* ok: [localhost] TASK [base-appliance : Set appliance_archive] ********************************** ok: [localhost] => {"ansible_facts": {"appliance_archive": "/tmp/appliance-1.54.0.tar.xz"}, "changed": false} TASK [base-appliance : Set appliance_path] ************************************* ok: [localhost] => {"ansible_facts": {"appliance_path": "/tmp//tmp/appliance-1.54.0"}, "changed": false} TASK [base-appliance : Remove existing appliance directory to avoid error: virt-customize: error: libguestfs error: cannot find any suitable libguestfs supermin] *** changed: [localhost] => {"changed": true, "path": "/tmp//tmp/appliance-1.54.0", "state": "absent"} TASK [base-appliance : Ensure appliance_path exists] *************************** changed: [localhost] => {"changed": true, "gid": 0, "group": "root", "mode": "0755", "owner": "root", "path": "/tmp//tmp/appliance-1.54.0", "size": 6, "state": "directory", "uid": 0} TASK [base-appliance : Download appliance] ************************************* ok: [localhost] => {"changed": false, "dest": "/tmp/appliance-1.54.0.tar.xz", "elapsed": 0, "gid": 0, "group": "root", "mode": "0644", "msg": "HTTP Error 304: Not Modified", "owner": "root", "size": 197794224, "state": "file", "uid": 0, "url": "https://download.libguestfs.org/binaries/appliance/appliance-1.54.0.tar.xz"} TASK [base-appliance : Unarchive appliance] ************************************ changed: [localhost] => {"changed": true, "dest": "/tmp//tmp/appliance-1.54.0", "extract_results": {"cmd": ["/bin/gtar", "--extract", "-C", "/tmp//tmp/appliance-1.54.0", "-f", "/root/.ansible/tmp/ansible-tmp-1774728907.0848794-15944-85892777810749/source"], "err": "", "out": "", "rc": 0}, "gid": 0, "group": "root", "handler": "TarArchive", "mode": "0755", "owner": "root", "size": 23, "src": "/root/.ansible/tmp/ansible-tmp-1774728907.0848794-15944-85892777810749/source", "state": "directory", "uid": 0} TASK [base-appliance : set_fact] *********************************************** ok: [localhost] => {"ansible_facts": {"virt_customize_env": {"LIBGUESTFS_BACKEND": "direct", "LIBGUESTFS_PATH": "/tmp//tmp/appliance-1.54.0/appliance"}}, "changed": false} TASK [base-local : Set image_tmp_dir] ****************************************** ok: [localhost] => {"ansible_facts": {"image_tmp_dir": "/var/tmp/rhel-9.3-x86_64-kvm.qcow2"}, "changed": false} TASK [base-local : Copy the image] ********************************************* [WARNING]: Consider using the file module with state=directory rather than running 'mkdir'. If you need to use command because file is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message. changed: [localhost] => {"changed": true, "cmd": "mkdir -p /var/tmp/rhel-9.3-x86_64-kvm.qcow2\ncp /mnt/RHEL/rhel-9.3-x86_64-kvm.qcow2 /var/tmp/rhel-9.3-x86_64-kvm.qcow2/\n", "delta": "0:00:01.447978", "end": "2026-03-28 20:15:47.229337", "rc": 0, "start": "2026-03-28 20:15:45.781359", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []} TASK [base-local : Set image_file] ********************************************* ok: [localhost] => {"ansible_facts": {"image_file": "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2"}, "changed": false} TASK [base-local : Set virt_customize_cmd] ************************************* ok: [localhost] => {"ansible_facts": {"virt_customize_cmd": ["virt-customize -m 2048 -a /var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2", "--selinux-relabel"]}, "changed": false} TASK [sshd-config : Prepare sshd_config file] ********************************** changed: [localhost] => {"changed": true, "checksum": "426f750873a82338136ef9ff497829722a2a035c", "dest": "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config", "gid": 0, "group": "root", "md5sum": "0f47734e2af65faf089c7bb0a53ff448", "mode": "0644", "owner": "root", "size": 907, "src": "/root/.ansible/tmp/ansible-tmp-1774728947.426108-16006-182801141580830/source", "state": "file", "uid": 0} TASK [sshd-config : set_fact] ************************************************** ok: [localhost] => {"ansible_facts": {"cmd": ["--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config:/etc/ssh/'", "--chmod '0600:/etc/ssh/sshd_config'"]}, "changed": false} TASK [sshd-config : Generate ssh host keys] ************************************ skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"} TASK [sshd-config : set_fact] ************************************************** ok: [localhost] => {"ansible_facts": {"virt_customize_cmd": ["virt-customize -m 2048 -a /var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2", "--selinux-relabel", "--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config:/etc/ssh/'", "--chmod '0600:/etc/ssh/sshd_config'"]}, "changed": false} TASK [zuul-user : Prepare the sudoers file] ************************************ changed: [localhost] => {"changed": true, "checksum": "bf0831556e9f0a8ed0d5520b424f992f590ea2e3", "dest": "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul", "gid": 0, "group": "root", "md5sum": "4dca5fc5ab85dbdfff30d6dde7c49c65", "mode": "0644", "owner": "root", "size": 87, "src": "/root/.ansible/tmp/ansible-tmp-1774728948.1628344-16037-228333245760922/source", "state": "file", "uid": 0} TASK [zuul-user : Prepare the authorized_keys file] **************************** changed: [localhost] => {"changed": true, "checksum": "8a762e403cc4ed4e8498b801fcf57c967505132e", "dest": "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys", "gid": 0, "group": "root", "md5sum": "0df0a4d0f345163e88e6dd96d3cb5f35", "mode": "0644", "owner": "root", "size": 395, "src": "/var/lib/nodepool/.ssh/zuul_rsa.pub", "state": "file", "uid": 0} TASK [zuul-user : set_fact] **************************************************** skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"} TASK [zuul-user : set_fact] **************************************************** skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"} TASK [zuul-user : set_fact] **************************************************** ok: [localhost] => {"ansible_facts": {"cmd": ["--run-command 'adduser -m zuul-worker'", "--mkdir '/home/zuul-worker/.ssh'", "--chmod '0700:/home/zuul-worker/.ssh'", "--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys:/home/zuul-worker/.ssh/'", "--chmod '0600:/home/zuul-worker/.ssh/authorized_keys'", "--run-command 'chown -R zuul-worker:zuul-worker /home/zuul-worker/.ssh/'", "--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul:/etc/sudoers.d/'", "--chmod '0440:/etc/sudoers.d/zuul'", "--run-command 'chcon -R -h system_u:object_r:user_home_t:s0 /home/zuul-worker && chcon -R -h system_u:object_r:ssh_home_t:s0 /home/zuul-worker/.ssh'"]}, "changed": false} TASK [zuul-user : set_fact] **************************************************** ok: [localhost] => {"ansible_facts": {"virt_customize_cmd": ["virt-customize -m 2048 -a /var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2", "--selinux-relabel", "--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config:/etc/ssh/'", "--chmod '0600:/etc/ssh/sshd_config'", "--run-command 'adduser -m zuul-worker'", "--mkdir '/home/zuul-worker/.ssh'", "--chmod '0700:/home/zuul-worker/.ssh'", "--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys:/home/zuul-worker/.ssh/'", "--chmod '0600:/home/zuul-worker/.ssh/authorized_keys'", "--run-command 'chown -R zuul-worker:zuul-worker /home/zuul-worker/.ssh/'", "--copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul:/etc/sudoers.d/'", "--chmod '0440:/etc/sudoers.d/zuul'", "--run-command 'chcon -R -h system_u:object_r:user_home_t:s0 /home/zuul-worker && chcon -R -h system_u:object_r:ssh_home_t:s0 /home/zuul-worker/.ssh'"]}, "changed": false} TASK [base-customize : debug] ************************************************** ok: [localhost] => { "msg": "Running: virt-customize -m 2048 -a /var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2 --selinux-relabel --copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config:/etc/ssh/' --chmod '0600:/etc/ssh/sshd_config' --run-command 'adduser -m zuul-worker' --mkdir '/home/zuul-worker/.ssh' --chmod '0700:/home/zuul-worker/.ssh' --copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys:/home/zuul-worker/.ssh/' --chmod '0600:/home/zuul-worker/.ssh/authorized_keys' --run-command 'chown -R zuul-worker:zuul-worker /home/zuul-worker/.ssh/' --copy-in '/var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul:/etc/sudoers.d/' --chmod '0440:/etc/sudoers.d/zuul' --run-command 'chcon -R -h system_u:object_r:user_home_t:s0 /home/zuul-worker && chcon -R -h system_u:object_r:ssh_home_t:s0 /home/zuul-worker/.ssh'" } TASK [base-customize : Run virt-customize] ************************************* changed: [localhost] => {"changed": true, "cmd": ["virt-customize", "-m", "2048", "-a", "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2", "--selinux-relabel", "--copy-in", "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config:/etc/ssh/", "--chmod", "0600:/etc/ssh/sshd_config", "--run-command", "adduser -m zuul-worker", "--mkdir", "/home/zuul-worker/.ssh", "--chmod", "0700:/home/zuul-worker/.ssh", "--copy-in", "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys:/home/zuul-worker/.ssh/", "--chmod", "0600:/home/zuul-worker/.ssh/authorized_keys", "--run-command", "chown -R zuul-worker:zuul-worker /home/zuul-worker/.ssh/", "--copy-in", "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul:/etc/sudoers.d/", "--chmod", "0440:/etc/sudoers.d/zuul", "--run-command", "chcon -R -h system_u:object_r:user_home_t:s0 /home/zuul-worker && chcon -R -h system_u:object_r:ssh_home_t:s0 /home/zuul-worker/.ssh"], "delta": "0:00:41.508854", "end": "2026-03-28 20:16:30.970209", "rc": 0, "start": "2026-03-28 20:15:49.461355", "stderr": "", "stderr_lines": [], "stdout": "[ 0.0] Examining the guest ...\n[ 17.8] Setting a random seed\n[ 17.9] Setting the machine ID in /etc/machine-id\n[ 17.9] Copying: /var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config to /etc/ssh/\n[ 18.0] Changing permissions of /etc/ssh/sshd_config to 0600\n[ 18.0] Running: adduser -m zuul-worker\n[ 19.0] Making directory: /home/zuul-worker/.ssh\n[ 19.0] Changing permissions of /home/zuul-worker/.ssh to 0700\n[ 19.0] Copying: /var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys to /home/zuul-worker/.ssh/\n[ 19.0] Changing permissions of /home/zuul-worker/.ssh/authorized_keys to 0600\n[ 19.0] Running: chown -R zuul-worker:zuul-worker /home/zuul-worker/.ssh/\n[ 19.1] Copying: /var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul to /etc/sudoers.d/\n[ 19.1] Changing permissions of /etc/sudoers.d/zuul to 0440\n[ 19.1] Running: chcon -R -h system_u:object_r:user_home_t:s0 /home/zuul-worker && chcon -R -h system_u:object_r:ssh_home_t:s0 /home/zuul-worker/.ssh\n[ 19.2] SELinux relabelling\n[ 41.3] Finishing off", "stdout_lines": ["[ 0.0] Examining the guest ...", "[ 17.8] Setting a random seed", "[ 17.9] Setting the machine ID in /etc/machine-id", "[ 17.9] Copying: /var/tmp/rhel-9.3-x86_64-kvm.qcow2/sshd_config to /etc/ssh/", "[ 18.0] Changing permissions of /etc/ssh/sshd_config to 0600", "[ 18.0] Running: adduser -m zuul-worker", "[ 19.0] Making directory: /home/zuul-worker/.ssh", "[ 19.0] Changing permissions of /home/zuul-worker/.ssh to 0700", "[ 19.0] Copying: /var/tmp/rhel-9.3-x86_64-kvm.qcow2/authorized_keys to /home/zuul-worker/.ssh/", "[ 19.0] Changing permissions of /home/zuul-worker/.ssh/authorized_keys to 0600", "[ 19.0] Running: chown -R zuul-worker:zuul-worker /home/zuul-worker/.ssh/", "[ 19.1] Copying: /var/tmp/rhel-9.3-x86_64-kvm.qcow2/zuul to /etc/sudoers.d/", "[ 19.1] Changing permissions of /etc/sudoers.d/zuul to 0440", "[ 19.1] Running: chcon -R -h system_u:object_r:user_home_t:s0 /home/zuul-worker && chcon -R -h system_u:object_r:ssh_home_t:s0 /home/zuul-worker/.ssh", "[ 19.2] SELinux relabelling", "[ 41.3] Finishing off"]} TASK [base-finalize : Create raw file] ***************************************** changed: [localhost] => {"changed": true, "cmd": ["qemu-img", "convert", "-O", "raw", "/var/tmp/rhel-9.3-x86_64-kvm.qcow2/rhel-9.3-x86_64-kvm.qcow2", "/var/lib/nodepool/dib/cloud-rhel-9-3-1ddf4136e02b455c99d7a79f3fe17a12.raw"], "delta": "0:00:06.080868", "end": "2026-03-28 20:16:37.297354", "rc": 0, "start": "2026-03-28 20:16:31.216486", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []} TASK [base-finalize : Create qcow file] **************************************** skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"} TASK [base-cleanup : Remove tmp directory] ************************************* changed: [localhost] => {"changed": true, "path": "/var/tmp/rhel-9.3-x86_64-kvm.qcow2", "state": "absent"} PLAY RECAP ********************************************************************* localhost : ok=23 changed=10 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 Running: sudo /usr/local/bin/ansible-playbook -v /etc/nodepool/virt_images/cloud-rhel-9-3.yaml -e image_output=/var/lib/nodepool/dib/cloud-rhel-9-3-1ddf4136e02b455c99d7a79f3fe17a12 -e raw_type=True Exit code: 0