[zabeltech (top answer)] This happens if there is no python installed on the remote hosts. The ansible documentation suggests doing this for every host by hand: ansible myhost --sudo -m raw -a "yum install -y python2 python-simplejson" However I think it's nicer to bootstrap all of your hosts with this snippet at the start of you playbook: - name: Bootrstrap python hosts: YOUR_HOST tasks: raw: sudo apt-get update && sudo apt-get -y python-simplejson delegate_to: '{{ item }}' with_items: {{ groups["hosts"] }}

Context: Stack Overflow #38799807 (top answer, 5 votes, 3 answers): I'm having a weird issue with Ansible on a (very) clean install of 10.11.6. I've installed brew, zsh, oh-my-zsh, Lil' snitch and 1password (and literally nothing else). I installed ansible with... brew install ansible ... which was successful. I then went to a preexisting (and crazy simple) Ansible project and did an... ansible -m ping all It then asked me to enter my SSH passphrase. I've reinstated the keys from my previous install but I hadn't previously ssh'd into the server. I entered the passphrase and ansible returned... ``` $ ansible -m ping all host1 | UNREACHABLE!