#ansible
#ansible
Вопрос:
У меня возникли проблемы с клонированием репозитория из Git с использованием переадресации ssh. Это моя настройка:
- name: Setup/pull the Git repo
git: repo={{ git_repo }} dest={{ git_root }} update=yes accept_hostkey=yes
when: setup_git_repo
tags: git deploy
#git_repo = git@github.com:my_name/repo.git
Я получаю эту отладку от -vvvv
<x.x.x.x> ESTABLISH CONNECTION FOR USER: ubuntu
<x.x.x.x> REMOTE_MODULE git repo=git@github.com:name/repo.git dest=/webapps/example-app/example update=yes accept_hostkey=yes
<x.x.x.x> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ForwardAgent=yes', '-o', u'IdentityFile="/Library/keys/aws-key.pem"', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'User=ubuntu', '-o', 'ConnectTimeout=10', 'x.x.x.x', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868 amp;amp; chmod a rx $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868 amp;amp; echo $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868'"]
Я вижу, что идентификационный файл — это не тот идентификатор, который я хочу использовать, мой ключ для git находится в ~/.ssh/ на компьютере, с которого я запускаю Ansible. Как я могу указать ему использовать правильный ключ или почему он не пробует другие ключи вместо того, чтобы просто зависать?
Я запускаю Ansible с ‘private_key_file’, установленным для ключа aws. Может быть, это проблема?
Я вижу, как это может быть возможно, используя переменную key_file модуля git и загружая мой закрытый ключ git на сервер, который я предоставляю. Я не хочу этого делать, я хочу переадресацию ssh с моего локального хоста.
Возможно ли это? Кто-нибудь может помочь, пожалуйста?
Ответ №1:
Хорошо, я, наконец, решил это.
Прежде всего, проверьте, работает ли переадресация агента ssh без Ansible. Этот список — довольно хороший ресурс для этого — https://help.github.com/articles/using-ssh-agent-forwarding .
После этого я просто добавил это в anisble.cfg, и все работает, как ожидалось.
sudo_flags=-HE