Embora eu espere que a causa raiz deste problema seja corrigida em uma versão Ansible futura, eu concluí minha própria solução. Basicamente eu modifiquei / hackeei um plugin de conexão despojado para o Ansible que simplesmente executa um comando no host. O processo foi o seguinte:
-
No diretório do livro de exercícios, crie um subdiretório denominado
connection_plugins
. -
Copie o plug-in de conexão
local.py
da instalação do Ansible (por exemplo,/usr/lib/python2.7/site-packages/ansible/runner/connection_plugins/local.py
) para o subdiretório recém-criado com um nome diferente, comoexecute.py
. -
Edite
connection_plugins/execute.py
e remova as seções de código relacionadas aos métodos de escalonamento de privilégios. -
Adicione uma entrada para
localhost
no arquivo de inventário com o parâmetroansible_connection=execute
.
A última etapa precisa ser modificada se local_action
realmente usar um método de escalonamento de privilégios para algumas tarefas. Nesse caso, é possível deixar a entrada para localhost
(se houver) inalterada, definir outro alias com o tipo de conexão execute
e, em seguida, usar delegate_to:
em vez de local_action:
nas definições da tarefa.