# STDOUT: ---v---v---v---v---v--- ansible-playbook [core 2.17.2] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/jenkins/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /opt/ansible-2.17/lib/python3.11/site-packages/ansible ansible collection location = /WORKDIR/git-weekly-cippj52g5c/.collection executable location = /opt/ansible-2.17/bin/ansible-playbook python version = 3.11.5 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] (/opt/ansible-2.17/bin/python) jinja version = 3.1.4 libyaml = True Using /etc/ansible/ansible.cfg as config file Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'default', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. PLAYBOOK: tests_global_config_mode.yml ***************************************** 1 plays in /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml PLAY [Test we can write global config with given permissions] ****************** TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:2 Saturday 10 August 2024 21:18:37 +0000 (0:00:00.011) 0:00:00.011 ******* ok: [sut] TASK [Backup configuration files] ********************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:11 Saturday 10 August 2024 21:18:39 +0000 (0:00:02.358) 0:00:02.370 ******* included: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/backup.yml for sut TASK [Setup] ******************************************************************* task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/backup.yml:2 Saturday 10 August 2024 21:18:39 +0000 (0:00:00.009) 0:00:02.380 ******* included: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml for sut TASK [Ensure facts used by test] *********************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:2 Saturday 10 August 2024 21:18:39 +0000 (0:00:00.011) 0:00:02.391 ******* skipping: [sut] => { "changed": false, "false_condition": "'os_family' not in ansible_facts", "skip_reason": "Conditional result was False" } TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:10 Saturday 10 August 2024 21:18:39 +0000 (0:00:00.008) 0:00:02.400 ******* ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:15 Saturday 10 August 2024 21:18:39 +0000 (0:00:00.253) 0:00:02.653 ******* ok: [sut] => { "ansible_facts": { "__ssh_is_ostree": false }, "changed": false } TASK [Make sure openssh is installed before creating backup] ******************* task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:19 Saturday 10 August 2024 21:18:39 +0000 (0:00:00.013) 0:00:02.667 ******* ok: [sut] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do lsrpackages: openssh-clients TASK [Define common variables] ************************************************* task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:31 Saturday 10 August 2024 21:18:41 +0000 (0:00:01.559) 0:00:04.226 ******* ok: [sut] => { "ansible_facts": { "main_ssh_config": "/etc/ssh/ssh_config", "main_ssh_config_name": "ssh_config", "main_ssh_config_path": "/etc/ssh/" }, "changed": false } TASK [Define specific variables] *********************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:37 Saturday 10 August 2024 21:18:41 +0000 (0:00:00.008) 0:00:04.235 ******* ok: [sut] => { "ansible_facts": { "main_ssh_config": "/etc/ssh/ssh_config.d/00-ansible.conf", "main_ssh_config_name": "00-ansible.conf", "main_ssh_config_path": "/etc/ssh/ssh_config.d/" }, "changed": false } TASK [Create a temporary directory for backup files] *************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/backup.yml:5 Saturday 10 August 2024 21:18:41 +0000 (0:00:00.013) 0:00:04.248 ******* ok: [sut] => { "changed": false, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/tmp/ansible.lzjaumql", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 40, "state": "directory", "uid": 0 } TASK [Backup files] ************************************************************ task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/backup.yml:13 Saturday 10 August 2024 21:18:41 +0000 (0:00:00.254) 0:00:04.503 ******* ok: [sut] => (item=/etc/ssh/ssh_config.d/00-ansible.conf) => { "ansible_loop_var": "item", "changed": false, "cmd": "if test -f /etc/ssh/ssh_config.d/00-ansible.conf; then\n mkdir -p /tmp/ansible.lzjaumql/$(dirname /etc/ssh/ssh_config.d/00-ansible.conf);\n cp -a /etc/ssh/ssh_config.d/00-ansible.conf /tmp/ansible.lzjaumql/$(dirname /etc/ssh/ssh_config.d/00-ansible.conf)\nfi\n", "delta": "0:00:00.008248", "end": "2024-08-10 21:18:41.893558", "item": "/etc/ssh/ssh_config.d/00-ansible.conf", "rc": 0, "start": "2024-08-10 21:18:41.885310" } ok: [sut] => (item=/etc/ssh/ssh_config) => { "ansible_loop_var": "item", "changed": false, "cmd": "if test -f /etc/ssh/ssh_config; then\n mkdir -p /tmp/ansible.lzjaumql/$(dirname /etc/ssh/ssh_config);\n cp -a /etc/ssh/ssh_config /tmp/ansible.lzjaumql/$(dirname /etc/ssh/ssh_config)\nfi\n", "delta": "0:00:00.008009", "end": "2024-08-10 21:18:42.103422", "item": "/etc/ssh/ssh_config", "rc": 0, "start": "2024-08-10 21:18:42.095413" } TASK [Run role] **************************************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:14 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.487) 0:00:04.990 ******* included: fedora.linux_system_roles.ssh for sut TASK [fedora.linux_system_roles.ssh : Set platform/version specific variables] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:2 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.019) 0:00:05.009 ******* included: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml for sut TASK [fedora.linux_system_roles.ssh : Ensure ansible_facts used by role] ******* task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:2 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.013) 0:00:05.022 ******* skipping: [sut] => { "changed": false, "false_condition": "__ssh_required_facts | difference(ansible_facts.keys() | list) | length > 0", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Check if system is ostree] *************** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:10 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.012) 0:00:05.035 ******* skipping: [sut] => { "changed": false, "false_condition": "not __ssh_is_ostree is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Set flag to indicate system is ostree] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:15 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.010) 0:00:05.046 ******* skipping: [sut] => { "changed": false, "false_condition": "not __ssh_is_ostree is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Check if transactional-update exists in /sbin] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:22 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.010) 0:00:05.057 ******* ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [fedora.linux_system_roles.ssh : Set flag if transactional-update exists] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:27 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.207) 0:00:05.264 ******* ok: [sut] => { "ansible_facts": { "__ssh_is_transactional": false }, "changed": false } TASK [fedora.linux_system_roles.ssh : Set platform/version specific variables] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:31 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.018) 0:00:05.282 ******* skipping: [sut] => (item=RedHat.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "RedHat.yml", "skip_reason": "Conditional result was False" } ok: [sut] => (item=Fedora.yml) => { "ansible_facts": { "__ssh_defaults": { "Include": "/etc/ssh/ssh_config.d/*.conf" }, "__ssh_drop_in_name": "00-ansible", "__ssh_supports_drop_in": true }, "ansible_included_var_files": [ "/WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/vars/Fedora.yml" ], "ansible_loop_var": "item", "changed": false, "item": "Fedora.yml" } skipping: [sut] => (item=Fedora_40.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "Fedora_40.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=Fedora_40.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "Fedora_40.yml", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Ensure required packages are installed] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:5 Saturday 10 August 2024 21:18:42 +0000 (0:00:00.023) 0:00:05.306 ******* ok: [sut] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do lsrpackages: openssh openssh-clients TASK [fedora.linux_system_roles.ssh : Notify user that reboot is needed to apply changes] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:17 Saturday 10 August 2024 21:18:43 +0000 (0:00:01.415) 0:00:06.722 ******* skipping: [sut] => { "false_condition": "__ssh_is_transactional | d(false)" } TASK [fedora.linux_system_roles.ssh : Reboot transactional update systems] ***** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:22 Saturday 10 August 2024 21:18:43 +0000 (0:00:00.012) 0:00:06.734 ******* skipping: [sut] => { "changed": false, "false_condition": "__ssh_is_transactional | d(false)", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Fail if reboot is needed and not set] **** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:27 Saturday 10 August 2024 21:18:43 +0000 (0:00:00.012) 0:00:06.746 ******* skipping: [sut] => { "changed": false, "false_condition": "__ssh_is_transactional | d(false)", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Gather information about the user for user configuration] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:35 Saturday 10 August 2024 21:18:43 +0000 (0:00:00.012) 0:00:06.759 ******* skipping: [sut] => { "changed": false, "false_condition": "ssh_user is not none", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Make sure the ~/.ssh/ directory exists and has expected permissions] *** task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:42 Saturday 10 August 2024 21:18:43 +0000 (0:00:00.012) 0:00:06.772 ******* skipping: [sut] => { "changed": false, "false_condition": "ssh_user is not none", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.ssh : Generate the configuration file] ********* task path: /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:53 Saturday 10 August 2024 21:18:43 +0000 (0:00:00.010) 0:00:06.783 ******* changed: [sut] => { "backup_file": "/etc/ssh/ssh_config.d/00-ansible.conf.7026.2024-08-10@21:18:44~", "changed": true, "checksum": "fd10e361130dbd3cf0286a2cc3bd7f14ae1d8b43", "dest": "/etc/ssh/ssh_config.d/00-ansible.conf", "gid": 2, "group": "daemon", "md5sum": "794672c8a072307a0e09ee8ae798b34c", "mode": "0600", "owner": "daemon", "secontext": "system_u:object_r:etc_t:s0", "size": 81, "src": "/root/.ansible/tmp/ansible-tmp-1723324723.9682753-2844-200915781288163/.source.conf", "state": "file", "uid": 2 } TASK [Download the global configuration file] ********************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:28 Saturday 10 August 2024 21:18:44 +0000 (0:00:00.725) 0:00:07.508 ******* ok: [sut] => { "changed": false, "content": "IwojIEFuc2libGUgbWFuYWdlZAojCiMgc3lzdGVtX3JvbGU6c3NoCgpDb21wcmVzc2lvbiB5ZXMKR1NTQVBJQXV0aGVudGljYXRpb24gbm8K", "encoding": "base64", "source": "/etc/ssh/ssh_config.d/00-ansible.conf" } TASK [Stat the configuration file too] ***************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:33 Saturday 10 August 2024 21:18:44 +0000 (0:00:00.257) 0:00:07.766 ******* ok: [sut] => { "changed": false, "stat": { "atime": 1723324724.8836143, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "fd10e361130dbd3cf0286a2cc3bd7f14ae1d8b43", "ctime": 1723324724.5936124, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 2, "gr_name": "daemon", "inode": 262265, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1723324708.6275127, "nlink": 1, "path": "/etc/ssh/ssh_config.d/00-ansible.conf", "pw_name": "daemon", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 81, "uid": 2, "version": "3548741266", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify the options are in the file] ************************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:38 Saturday 10 August 2024 21:18:45 +0000 (0:00:00.218) 0:00:07.985 ******* ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify the file has expected permissions] ******************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:44 Saturday 10 August 2024 21:18:45 +0000 (0:00:00.013) 0:00:07.998 ******* ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Restore configuration files] ********************************************* task path: /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:52 Saturday 10 August 2024 21:18:45 +0000 (0:00:00.011) 0:00:08.010 ******* included: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/restore.yml for sut TASK [Restore backed up files and remove what was not present] ***************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/restore.yml:2 Saturday 10 August 2024 21:18:45 +0000 (0:00:00.008) 0:00:08.019 ******* ok: [sut] => (item=/etc/ssh/ssh_config.d/00-ansible.conf) => { "ansible_loop_var": "item", "changed": false, "cmd": "if test -f /tmp/ansible.lzjaumql//etc/ssh/ssh_config.d/00-ansible.conf; then\n cp -a /tmp/ansible.lzjaumql//etc/ssh/ssh_config.d/00-ansible.conf $(dirname /etc/ssh/ssh_config.d/00-ansible.conf)\nelif test -f /etc/ssh/ssh_config.d/00-ansible.conf; then\n rm /etc/ssh/ssh_config.d/00-ansible.conf\nfi\n", "delta": "0:00:00.006272", "end": "2024-08-10 21:18:45.354572", "item": "/etc/ssh/ssh_config.d/00-ansible.conf", "rc": 0, "start": "2024-08-10 21:18:45.348300" } ok: [sut] => (item=/etc/ssh/ssh_config) => { "ansible_loop_var": "item", "changed": false, "cmd": "if test -f /tmp/ansible.lzjaumql//etc/ssh/ssh_config; then\n cp -a /tmp/ansible.lzjaumql//etc/ssh/ssh_config $(dirname /etc/ssh/ssh_config)\nelif test -f /etc/ssh/ssh_config; then\n rm /etc/ssh/ssh_config\nfi\n", "delta": "0:00:00.006014", "end": "2024-08-10 21:18:45.554892", "item": "/etc/ssh/ssh_config", "rc": 0, "start": "2024-08-10 21:18:45.548878" } TASK [Remove temporary directory for backup files] ***************************** task path: /WORKDIR/git-weekly-cippj52g5c/tests/tasks/restore.yml:15 Saturday 10 August 2024 21:18:45 +0000 (0:00:00.418) 0:00:08.438 ******* ok: [sut] => { "changed": false, "path": "/tmp/ansible.lzjaumql", "state": "absent" } PLAY RECAP ********************************************************************* sut : ok=24 changed=1 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0 Saturday 10 August 2024 21:18:45 +0000 (0:00:00.272) 0:00:08.711 ******* =============================================================================== Gathering Facts --------------------------------------------------------- 2.36s /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:2 ----------- Make sure openssh is installed before creating backup ------------------- 1.56s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:19 ----------------------- fedora.linux_system_roles.ssh : Ensure required packages are installed --- 1.42s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:5 fedora.linux_system_roles.ssh : Generate the configuration file --------- 0.73s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:53 Backup files ------------------------------------------------------------ 0.49s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/backup.yml:13 ---------------------- Restore backed up files and remove what was not present ----------------- 0.42s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/restore.yml:2 ---------------------- Remove temporary directory for backup files ----------------------------- 0.27s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/restore.yml:15 --------------------- Download the global configuration file ---------------------------------- 0.26s /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:28 ---------- Create a temporary directory for backup files --------------------------- 0.25s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/backup.yml:5 ----------------------- Check if system is ostree ----------------------------------------------- 0.25s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:10 ----------------------- Stat the configuration file too ----------------------------------------- 0.22s /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:33 ---------- fedora.linux_system_roles.ssh : Check if transactional-update exists in /sbin --- 0.21s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:22 fedora.linux_system_roles.ssh : Set platform/version specific variables --- 0.02s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:31 Run role ---------------------------------------------------------------- 0.02s /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:14 ---------- fedora.linux_system_roles.ssh : Set flag if transactional-update exists --- 0.02s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:27 Verify the options are in the file -------------------------------------- 0.01s /WORKDIR/git-weekly-cippj52g5c/tests/tests_global_config_mode.yml:38 ---------- Set flag to indicate system is ostree ----------------------------------- 0.01s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:15 ----------------------- Define specific variables ----------------------------------------------- 0.01s /WORKDIR/git-weekly-cippj52g5c/tests/tasks/setup.yml:37 ----------------------- fedora.linux_system_roles.ssh : Set platform/version specific variables --- 0.01s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/main.yml:2 fedora.linux_system_roles.ssh : Ensure ansible_facts used by role ------- 0.01s /WORKDIR/git-weekly-cippj52g5c/.collection/ansible_collections/fedora/linux_system_roles/roles/ssh/tasks/set_vars.yml:2 ---^---^---^---^---^--- # STDERR: ---v---v---v---v---v--- [DEPRECATION WARNING]: ANSIBLE_COLLECTIONS_PATHS option, does not fit var naming standard, use the singular form ANSIBLE_COLLECTIONS_PATH instead. This feature will be removed from ansible-core in version 2.19. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg. [WARNING]: Platform linux on host sut is using the discovered Python interpreter at /usr/bin/python3.12, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible- core/2.17/reference_appendices/interpreter_discovery.html for more information. ---^---^---^---^---^---