Ansible runs first on the local machine (controller), then opens an ssh
connection to the remote machine (target), copies itself and needed
modules to the remote machine and invokes itself on the remote machine.
So, eventually you will have _two_ processes of ansible: one runs on
local machine and the other runs on the remote machine. If you happen to
have installed ansible on the local machine inside a virtual environment
and you have enabled that virtualenv, then the process running on the
local machine will be running in the context of that virtualenv. On the
other hand, the process that is running on the remote machine will have
been invoked with the python interpreter configured with
ansible_python_interpreter (which defaults to '/usr/bin/python').