Лучшая альтернатива пакетному файлу для автоматического Git-Pull на сервере Windows

У меня есть набор веб-серверов, и для поддержания актуальности файлов на сервере я использую запланированное задание Windows. Задача вызывает командный файл, который выполняет команду git-pull.

Это кажется достаточно простым, но я использую ключи SSH для аутентификации на git-сервере. Пока что единственный способ, который мне удалось выяснить для передачи этих ключей в git - это использовать pageant.exe, В результате мой командный файл содержит следующие команды:

"C:\Program Files\TortoiseGit\bin\pageant.exe" "C:\privateKey.ppk"
set local
set HOME=c:\
set GIT_SSH=C:\Program Files\TortoiseGit\bin\TortoisePLink.exe
cd c:\webserverfiles
git pull -v --progress origin master

Это работает по большей части; однако основная проблема заключается в том, что просмотр страницы выполняется в фоновом режиме, и при первом выполнении этого пакетного файла первая строка зависает на неопределенный срок. Чтобы обойти это, я вручную запускаю задачу, убиваю ее, а затем запускаю автоматически. Но в случае сбоя программы Pageant или перезагрузки сервера мои файлы больше не синхронизируются на этом сервере из-за проблемы с первой строкой (которая может быть большой проблемой в циклическом сценарии).

Есть какие-нибудь предложения относительно того, как улучшить эту схему? Я не могу переключиться на git на основе https.

1 ответ

Я не понимаю ситуации, когда вам пришлось бы устанавливать специальные настройки среды, чтобы заставить работать команды Git. Вы уверены, что правильно настроили?

Я обычно рекомендую разработчикам

  1. Установить msysgit
  2. Установите TortoiseGit.
  3. При установке TortoiseGit, они должны выбрать OpenSSH (не TortoiseGitPLink). введите описание изображения здесь
  4. Бежать ssh-keygen.exe -C "firstname.lastname@domain.com" генерировать ключи в $HOME\.ssh папка
  5. Скопируйте открытый ключ в .ssh\id_rsa.pub на сервер Git.

OpenSSH не требует pageant.exe,

После этой настройки дополнительные параметры среды не требуются. (Переменные SSH_AGENT_PID и SSH_AUTH_SOCK устанавливаются платформой). git clone ssh://xxxx должен работать сразу.

Другие вопросы по тегам