tower playbooks playbook group_vars ansible ansible-playbook

playbooks - ansible tower



ejecutar una tarea local ansible en un libro de jugadas remoto (1)

El formato para local_action es:

local_action: <module_name> <arguments>

En su ejemplo, Ansible cree que está intentando usar el módulo git y arroja un error porque no tiene los argumentos correctos para el módulo git. Aquí es cómo debe verse:

local_action: shell git branch | awk ''/^/*/{print $2}''

Fuente: http://docs.ansible.com/playbooks_delegation.html#delegation

Estoy intentando que esta tarea se ejecute localmente (en la máquina que ejecuta el libro de jugadas):

- name: get the local repo''s branch name local_action: git branch | awk ''/^/*/{print $2}'' register: branchName

Probé muchas variaciones sin éxito.

todas las demás tareas están destinadas a ejecutarse en el host de destino, por lo que ejecutar el libro de jugadas local no es una opción

TASK: [get the local repo''s branch name] ************************************** <127.0.0.1> REMOTE_MODULE git branch | awk ''/^/*/{print $2}'' <127.0.0.1> EXEC [''/bin/sh'', ''-c'', ''mkdir -p $HOME/.ansible/tmp/ansible-tmp-1407258765.57-75899426008172 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1407258765.57-75899426008172 && echo $HOME/.ansible/tmp/ansible-tmp-1407258765.57-75899426008172''] <127.0.0.1> PUT /tmp/tmpQVocvw TO /home/max/.ansible/tmp/ansible-tmp-1407258765.57-75899426008172/git <127.0.0.1> EXEC [''/bin/sh'', ''-c'', ''/usr/bin/python /home/max/.ansible/tmp/ansible-tmp-1407258765.57-75899426008172/git; rm -rf /home/max/.ansible/tmp/ansible-tmp-1407258765.57-75899426008172/ >/dev/null 2>&1''] failed: [portal-dev] => {"failed": true} msg: this module requires key=value arguments ([''branch'', ''|'', ''awk'', ''/^//*/{print $2}'']) FATAL: all hosts have already failed -- aborting

actualizar:

He seguido la sugerencia de bkan (bramido), y he llegado un poco más lejos, pero

- name: get the local repo''s branch name local_action: command git branch | (awk ''/^/*/{print $2}'') sudo: no register: branchName

ahora el comando git se inicia pero no correctamente (ver error más abajo).

tenga en cuenta que este comando se ejecuta perfectamente como "shell" pero desafortunadamente no hay un equivalente local_shell de local_action ...

failed: [portal-dev] => {"changed": true, "cmd": ["git", "branch", "|", "(awk", "/^//*/{print $2})"], "delta": "0:00:00.002980", "end": "2014-08-05 18:00:01.293632", "rc": 129, "start": "2014-08-05 18:00:01.290652"} stderr: usage: git branch [options] [-r | -a] [--merged | --no-merged] or: git branch [options] [-l] [-f] <branchname> [<start-point>] or: git branch [options] [-r] (-d | -D) <branchname>... or: git branch [options] (-m | -M) [<oldbranch>] <newbranch> ...