I think the 'ansible' provisioner
is Vagrant’s provisioner tool that reaches out to–and uses–your Ansible installation. So, it could be a Vagrant thing that you deleted when you “went through [your] whole machine and wiped all traces of Ansible.” You might need a Vagrant reinstall to fix that.
Given this suggestion that your Ansible is associated with python 3.x, note that the iteritems()
method from python 2.x no longer exists (is renamed) in python 3.x. So, if you’re now using 3.x, that could account for the error you got …
However, the first instance of iteritems()
is on line 26, not on line 25 like your error suggests. This makes me wonder if somehow your version of vars.py
is missing one critical earlier line: from ansible.compat.six import iteritems
, which defines a special iteritems()
for your PY3
to use.
So, double-check that you do in fact have this line
:
from ansible.compat.six import iteritems
If you do not have that line, perhaps you performed a strange Trellis update/merge at some point. Until you have that line or ensure that Ansible uses python 2.x, I think that no reinstall of other stuff will avoid the iteritems
error. Note that in the past, I’ve tested Trellis on python 3.x and it worked fine, assuming you have that compat.six
import that is part of default Trellis.
In any case, it might not hurt to reinstall stuff if you’ve been tinkering. Good luck. I recently enjoyed managing python versions on OS X via pyenv (example installation guide). For pyenv to work on el capitan, I had to first install python via brew, then apply pyenv.