|
@@ -1,7 +1,7 @@
|
|
|
## ADDED Requirements
|
|
## ADDED Requirements
|
|
|
|
|
|
|
|
### Requirement: Python 3 is bootstrapped on all managed hosts before module execution
|
|
### Requirement: Python 3 is bootstrapped on all managed hosts before module execution
|
|
|
-A pre-task play SHALL run before any other plays in `site.yml` that installs `python3` on all hosts using the `raw` module. This play SHALL set `gather_facts: false` to avoid triggering the setup module. The install command SHALL be idempotent (safe to re-run on hosts where Python is already installed).
|
|
|
|
|
|
|
+A pre-task play SHALL run before any other plays in `site.yml` that installs `python3` on all hosts using the `raw` module. This play SHALL set `gather_facts: false` to avoid triggering the setup module. The install command SHALL be idempotent (safe to re-run on hosts where Python is already installed). The `ansible_python_interpreter` SHALL be set to `auto_silent` in `group_vars/all.yml` to enable automatic interpreter discovery without emitting warnings.
|
|
|
|
|
|
|
|
#### Scenario: Host without Python 3
|
|
#### Scenario: Host without Python 3
|
|
|
- **WHEN** Ansible runs against a host that does not have Python 3 installed
|
|
- **WHEN** Ansible runs against a host that does not have Python 3 installed
|
|
@@ -12,3 +12,7 @@ A pre-task play SHALL run before any other plays in `site.yml` that installs `py
|
|
|
- **WHEN** Ansible runs against a host that already has Python 3 installed
|
|
- **WHEN** Ansible runs against a host that already has Python 3 installed
|
|
|
- **THEN** the raw task completes successfully without changing the system
|
|
- **THEN** the raw task completes successfully without changing the system
|
|
|
- **THEN** subsequent plays run normally
|
|
- **THEN** subsequent plays run normally
|
|
|
|
|
+
|
|
|
|
|
+#### Scenario: Interpreter discovery runs silently
|
|
|
|
|
+- **WHEN** Ansible discovers the Python interpreter on any managed host
|
|
|
|
|
+- **THEN** no `[WARNING]` about interpreter discovery SHALL be emitted in playbook output
|