Eric4
(Eric)
1
I’m running an Ansible playbook to use the raw module, to install python-minimal.
The host is reachable.
The host can be SSH’ed into as root.
However, when running the playbook below, it fails.
It gives the error:
“module_stdout”: “bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)\r\n/bin/sh: 1: /usr/bin/python: not found\r\n”,
---
# https://gist.github.com/gwillem/4ba393dceb55e5ae276a87300f6b8e6f
- hosts: all
tasks:
- name: install python 2
raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
Eric4
(Eric)
2
However, it works when run manually:
ansible -i all.yml -m raw -a “apt install -y python-minimal”
The problem is that you don't provide the whole error message, if you had you probably would have gotten an answer several days ago.
So without the error message I can only guess, but default Ansible has gather facts on, so you need to turn it off.
This is what we use:
---
- hosts: ubuntu-1604
gather_facts: no
pre_tasks:
# Needed because python is not installed
- name: install python (if needed)
raw: test -e /usr/bin/python || (apt update -y && apt install -y python-minimal)
register: _python_minimal
changed_when: _python_minimal.stdout_lines | length > 0
Eric4
(Eric)
5
gather_facts was what I needed!