El module Ansit Git no está revisando una sucursal

Estoy usando ansible para finalizar mi aplicación web en instancias web de EC2. Mi código es el siguiente:

- name: Checkout the source code git: accept_hostkey=yes depth=5 dest={{ webapp_dir }} force=yes key_file=/var/tmp/webapp_deploy_key repo=git@github.com:MyRepo/web-app.git update=yes version={{ webapp_version }} register: git_output 

Siempre que webapp_version = master funcione perfectamente. Pero tan pronto como coloque un SHA1 o nombre de sucursal, fallará.

 TASK: [webapp | Checkout the source code] ************************************* failed: [52.17.69.83] => {"failed": true} msg: Failed to checkout some-branch 

Es bastante extraño.

Yo suelo:

 › ansible --version ansible 1.9.1 configunetworking module search path = None 

Y nuevamente responderé una de mis propias preguntas. La depth=5 fue el asesino. Bueno, no lo use si quiere tener acceso a todas sus versiones diferentes;)

Es el valor de la versión de webapp en tu file de configuration que podría ser el culpable. Lo usé de esta manera y probé el código que funciona para los valores maestros y de lanzamiento / 1.0.

  - name: Checkout the source code git: dest=/tmp/dump force=yes key_file=ghtest repo=git@github.com:Myrepo/test.git update=yes version='release/1.0' register: git_output 

Esto no tiene nada que ver con git. Tu YAML está equivocado (me sorprende que no te dé un error de análisis). Usted debe escribirlo así:

 - name: Checkout the source code git: > accept_hostkey=yes depth=5 dest={{ webapp_dir }} 

es decir, con a > after the git: que le dice a YAML que concatene las siguientes líneas en una sola línea, o de esta manera:

 - name: Checkout the source code git: accept_hostkey: yes depth: 5 dest: "{{ webapp_dir }}" 

es decir, utilizando dos puntos en lugar de signos iguales. En este caso, las citas alnetworkingedor de {{ webapp_dir }} son importantes (consulte la documentation de ansible sobre este tema ).