2015-09-07 10 views
5

Próbuję sklonować prywatne repozytorium git z Bitbucket używając Ansible 1.9.3 (OSX) i połączenia https. Mam zapisane hasło w schowku i wklejam się, gdy zostanie poproszony o jego podanie. Następujące polecenie wymaga mi podać hasło dwa lub trzy razy (nieregularnie, nie raz i nigdy więcej niż trzy):Klonowanie repozytorium git z Bitbucket z Ansible - pytanie o hasło dwa lub trzy razy

[~/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]# 

Zapewnienie nieprawidłowe hasło albo spróbować natychmiast skutkuje błędem remote: Invalid username or password, więc wpisując błędem jest obecnie pytania. Opcja -vvv nie daje podpowiedzi. Opóźnienie wpisania hasła nie wpływa na zachowanie.

Dlaczego jestem pytany kilka razy i dlaczego liczba razy się różni?

Odpowiedz

5

Moduł Ansible git to coś więcej niż klonowanie. Może także zaktualizować istniejące lokalne repozytorium, pracować z podmodułami, itp. (http://docs.ansible.com/ansible/git_module.html)

Domyślam się, że wykonuje wiele operacji, z których każdy wymaga dostępu do zdalnego repo BitBucket. Spojrzenie na git module's source code pokazuje, że nawet dla samego kroku clone, wykonuje binarnie kilka razy różne parametry z różnymi parametrami. Możliwe, że tak się dzieje w tym miejscu - w zależności od tego, czy masz już repozytorium, liczba poleceń może być różna, a każde polecenie, które współdziała z lokalnym repo, ponownie poprosi o hasło.

Aby obejść ten problem, należy rozważyć skonfigurowanie urządzenia Git credential helper na maszynie docelowej. W najprostszym przypadku możesz użyć implementacji cache, która będzie buforować twoje hasło przez kilka minut. Wpisanie go raz powinno być w tym przypadku wystarczające.

+0

Spot na! Trzy razy podczas klonowania do nowego repozytorium, dwa razy, gdy repozytorium docelowe już istniało. A konfigurowanie '' 'git config --global credential.helper 'cache'''' zapobiega dodatkowym żądaniom hasła. Dziękuję Ci. – techraf

+0

Nie ma za co, cieszę się, że to działa. – nwinkler

Powiązane problemy