Я быть в замешательстве здесь, и после обыска морей (чтение: Интернет) для решений меня не оставляют ни с кем другим, чем подбросить стек ударом. любая справка ценится.
У меня есть capistrano, работающий локально за развертыванием на несколько различных сред. (Я нахожусь на окнах 7, fwiw). Все было хорошо, пока я не должен был развертываться нескольким: серверы приложений во время единственного развертывания.
Обычно мне предлагают мой ssh пароль однажды, когда я звоню cap deploy
. У меня есть выполнение ssh-агента (мерзавец никогда не пристает для моей передачи), но несмотря на этот Capistrano всегда прослушивал меня однажды каждое развертывание. Независимо, это всегда работало при развертывании к ОДНОМУ хосту.
Теперь, когда я пытаюсь развернуться к нескольким серверам сразу, это просит мой пароль, что, кажется, многократно:
(дюйм/с удалил ME),
servers: ["redacted", "redacted"]<br />
Enter passphrase for ~/.ssh/id_rsa: Enter passphrase for ~/.ssh/id_rsa:
Таким образом с вышеупомянутым я ввожу свой пароль, но это не работает. Это ожидает так же мало, в то время как, затем выкладывает эту ошибку:
connection failed for: <one of the server ips> (NoMethodError: undefined method `overwrite' for nil:NilClass)
И это - конец этого.
role :app, "ip 1 removed", "ip 2 removed"
default_run_options[:max_hosts] = 1
, это работает хорошо, но это просит мой пароль для каждого соединения с каждым хостом, к которому я развертываюсь.. который заканчивает тем, что был много.По существу я ищу любой из ниже (но не ограниченный): - "Вы никогда не собираетесь закреплять это на окнах" - "Это - то, как Вы получаете реальное развертывание без пароля в capistrano" - "Вы пропустили эту установку/функцию?" - "У меня есть скала, которая может зафиксировать что-либо, можно одолжить ее"
Спасибо!
Какое значение установлено для пользовательской переменной? запустите простую команду вызова из каталога с Capfile, который должен попытаться выполнить на всех перечисленных серверах. Успешно ли он подключается?
cap invoke COMMAND="echo 'Hello World'"
Если это не сработает, вероятно, ваш пользователь не совпадает с вашим SSH-агентом без пароля. Вы также можете посмотреть журналы SSH на сервере и посмотреть, можете ли вы определить, какой агент на самом деле пытается безуспешно подключиться.