Подтвердить что ты не робот

Доступен: git модуль висит

Я использую Ansible, и мне трудно работать с модулем git. Я прочитал несколько сообщений о людях, имеющих одну и ту же проблему, я посмотрел на недопустимый документ, и я попробовал почти все. Я нашел четкое учебное пособие, после которого я использовал git, но опять-таки у меня проблема, когда я использую свой репозиторий...:/ Задача git просто зависает... нет ошибки, она просто застряла!

Вот мой файл хоста:

[web]
dev1 ansible_ssh_host=10.0.0.101 ansible_ssh_user=root

Это виртуальная виртуальная машина, работающая на виртуальном компьютере на моем компьютере.

Я взял учебник из этого учебника и выполнил все шаги до шага 08: https://github.com/leucos/ansible-tuto/tree/master/step-08

Я запускаю его на своей виртуальной машине, он отлично работает, затем я добавляю одну задачу "Развернуть мой код", чтобы использовать мой репозиторий... но эта задача не работает. Это частный репозиторий на битбакете. Это имеет значение?

- hosts: web
  tasks:

    - name: Deploy our awesome application
      action: git repo=https://github.com/leucos/ansible-tuto-demosite.git dest=/var/www/awesome-app
      tags: deploy

    - name: Deploy my code
      action: git repo=https://[email protected]/YAmikep/djangotutorial.git dest=/var/www/my-app
      tags: deploy

Может быть что-то с пользователем, или с пользователем, с которым можно работать, или с ключами, и т.д., но я пробовал взад и вперед в течение нескольких часов, и теперь я еще больше смущен... Я просто не знаю, что делать с отлаживайте это сейчас и выясните, что не так и чего я не вижу.

Спасибо.

4b9b3361

Ответ 1

Существует несколько причин, по которым модуль git может быть виден, но наиболее вероятно, что команда git clone ожидает подтверждения, если ключ хоста должен быть добавлен к вашим серверам известных хостов. Чтобы убедиться, что это проблема, выполняйте с флагом: --verbose, чтобы он выполнялся в подробном режиме, это даст вам больше информации об ошибке.

Если вы подтвердите, что известные хосты являются проблемой, у вас есть два варианта:

Решение 1:

Чтобы избежать этой проблемы с git, используйте параметр accept_hostkey.

- name: ensure jquery repo is available
  git: [email protected]:jquery/jquery.git version=master accept_hostkey=True

Решение 2:

Используйте ansible-sshknownhosts сторонний модуль перед использованием модуля git:

- name: ensure github is a known host
  action: sshknownhosts host=github.com state=present 

- name: ensure jquery repo is available
  git: [email protected]:jquery/jquery.git version=master accept_hostkey=True

Так как knownhosts не является основным незаменимым модулем, вам необходимо его сначала установить, обратитесь к github repo docs для получения дополнительной информации. установите его.


другим решением было бы отключить проверку ключа хоста ssh, но это имеет последствия для безопасности, поэтому, если вы действительно не знаете, что делаете, лучше избегать этого.

Ответ 2

Я пробовал в основном все (прием ключей, изменение конфигурации ssh, файл known_hosts, пересылка ssh-agent и забыл, что еще), чтобы не добиться успеха.

После того, как вытащил все мои волосы, я в конечном итоге прибил проблему, чтобы быть фактом, что SSH закрытый ключ может потребоваться парольная фраза!

Я раньше этого не заметил, потому что локальный агент ssh позаботился об этом, используя хранимую кодовую фразу keyring, поэтому все работало локально. Используя Ansible на виртуальной машине бродяг, этот механизм недоступен, и модуль git застрял, ожидая ввода кодовой фразы. Как только я понял возможную причину, я создал специальную пару ключей без кодовой фразы (аспекты безопасности известны, правда?) И добавили открытый ключ в битбакет (/github/whatshever). При использовании этого конкретного ключа все прошло гладко.

Ответ 3

Если пользователю требуется пароль, модуль git может зависать, если он не указан, а исполняемый файл git запрашивает его в фоновом режиме. Для вашего параметра репо используйте https://YAmikep:{yourpassword}@bitbucket.org/YAmikep/djangotutorial.git. Или попробуйте вместо этого использовать git/ssh, поэтому пароль не требуется.

Ответ 4

Я столкнулся с этим, и в моем случае git зависает при подтверждении нового ssh-ключа для хоста (bitbucket.org). Это можно решить с помощью sshknownhosts модуля, который запускается до git для заполнения .ssh/known_hosts в хост, так что впоследствии git не нужно висеть на нем.

Но будьте осторожны с возможными проблемами безопасности, прочитайте документацию модуля.

Ответ 5

fwiw У меня также было это, по-видимому, вызванное несколькими агентами ssh (osx client). Исправлено с помощью

killall ssh-agent && & eval `ssh-agent` && & ssh-add -K