Clonación de un repository git de Bitbucket con Ansible: se pidió una contraseña dos o tres veces

Estoy intentando clonar un repository git privado de Bitbucket usando Ansible 1.9.3 (OSX) y una connection https. Tengo mi contraseña almacenada en el portapapeles y uso pegar cuando me piden que la proporcione. El siguiente command requiere que proporcione la contraseña dos o tres veces (de forma irregular, nunca una vez y nunca más de tres):

[~/devops]# ansible localhost -c local -m git -a "repo=https://techraf@bitbucket.org/techraf/ansible-local.git dest=~/devops/ansible-local" Password for 'https://techraf@bitbucket.org': Password for 'https://techraf@bitbucket.org': Password for 'https://techraf@bitbucket.org': localhost | success >> { "after": "445dfaf39a6245bc30149dd722b1a17d0e56ba55", "before": null, "changed": true } [~/devops]# 

Proporcionar una contraseña incorrecta en cualquiera de los bashs inmediatamente da como resultado un error de remote: Invalid username or password , por lo que el error de tipeo está fuera de toda duda. -vvv opción no da ninguna pista. Retrasar el ingreso de la contraseña no parece influir en el comportamiento.

¿Por qué me preguntan varias veces y por qué el número de veces difiere?

El module Ansit git hace más que simplemente clonar. También puede actualizar un repository local existente, trabajar con submodules, etc. ( http://docs.ansible.com/ansible/git_module.html )

Mi suposition es que está haciendo operaciones múltiples, donde cada uno requiere acceso al repository BitBucket remoto. Una mirada al código fuente del module de git muestra que incluso para el paso de clone , está ejecutando el git binary un par de veces con diferentes parameters. Es posible que esto esté sucediendo aquí: dependiendo de si tiene el repository ya clonado, el número de commands puede variar y cada command que interactúa con su repository local le pedirá la contraseña nuevamente.

Para evitar esto, debería considerar configurar un ayudante de cnetworkingencial Git en la máquina de destino. En el caso más sencillo, puede usar la implementación de la cache , que saveá en caching su contraseña durante un par de minutos. Ingresarlo una vez debería ser suficiente en este caso.