proposal.md 1.2 KB

Why

Ansible fails to run against relay-server because it cannot find a Python interpreter at the default path /usr/bin/python3. The remote host does not have Python installed at that location, causing ansible.legacy.setup (fact gathering) to fail with rc: 127.

What Changes

  • Install Python 3 on the relay server via a raw task (which doesn't require Python) before any other plays run.
  • Configure ansible_python_interpreter to use auto-discovery so Ansible can locate Python regardless of install path.

Capabilities

New Capabilities

  • python-bootstrap: Ensure Python 3 is installed on remote hosts before Ansible modules are used, using raw/shell commands that don't require Python.

Modified Capabilities

  • server-base: Add ansible_python_interpreter configuration to handle hosts where Python may not be at the default path.

Impact

  • inventory/hosts.yml or group_vars/all.yml: Add ansible_python_interpreter: auto setting.
  • site.yml: Add a pre-play that uses raw module to install Python 3 on hosts that lack it.
  • All hosts in the inventory are affected, but the bootstrap is idempotent and safe for hosts that already have Python installed.