2015-09-07 18 views
5

Sto cercando di clonare un repository git privato da Bitbucket usando Ansible 1.9.3 (OSX) e una connessione https. Ho la mia password memorizzata negli appunti e uso incollare quando viene richiesto di fornire. Il seguente comando mi obbliga a fornire la password di due o tre volte (in modo irregolare, mai una volta e mai più di tre):Clonazione di un repository git da Bitbucket con Ansible - Richiesta di password due o tre volte

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

[~/devops]# 

Fornire password non corretta su entrambi provare immediatamente i risultati in un errore remote: Invalid username or password, quindi digitando errore è fuori di domanda. L'opzione -vvv non dà alcun suggerimento. Ritardare l'inserimento della password non sembra influenzare il comportamento.

Perché mi viene chiesto più volte e perché il numero di volte è diverso?

risposta

5

Il modulo Ansible git fa molto più della semplice clonazione. Può anche aggiornare un repository locale esistente, lavorare con i sottomoduli, ecc. (http://docs.ansible.com/ansible/git_module.html)

La mia ipotesi è che sta facendo più operazioni, in cui ognuno richiede l'accesso al repository remoto BitBucket. Uno sguardo allo git module's source code mostra che anche per il solo passo clone, esegue il binario git un paio di volte con parametri diversi. È possibile che ciò avvenga qui - a seconda che il repository sia già clonato, il numero di comandi può variare e ogni comando che interagisce con il repository locale richiederà di nuovo la password.

Per ovviare a questo problema, è consigliabile configurare un Git credential helper sul computer di destinazione. Nel caso più semplice, è possibile utilizzare l'implementazione cache, che memorizzerà la password per un paio di minuti. Inserirla una volta dovrebbe essere sufficiente in questo caso.

+0

Spot on! Tre volte quando si clona su un nuovo repository, due volte quando il repository di destinazione esisteva già. E la configurazione di '' 'git config --global credential.helper 'cache''' impedisce le richieste di password aggiuntive. Grazie. – techraf

+0

Prego, felice di sapere che funziona. – nwinkler

Problemi correlati