От новичка до гуру: Курсы программирования на CyberDuff

Capistrano не работает при развертывании на нескольких хостах

Я здесь в растерянности, и после рыскания по морям (читай: в Интернете) в поисках решений мне не остается ничего иного, кроме как попасть в стек. любая помощь приветствуется.

У меня есть capistrano, работающий локально для развертывания в нескольких различных средах. (Я на windows 7, прошу). Все было хорошо, пока мне не потребовалось выполнить развертывание на нескольких серверах приложений во время одного развертывания.

Обычно мне предлагается ввести парольную фразу ssh один раз, когда я звоню cap deploy. У меня запущен ssh-agent (git никогда не приставает к моему проходу), но, несмотря на это, Capistrano всегда приставал ко мне после каждого развертывания. Тем не менее, он всегда работал при развертывании на ОДНОМ хосте.

Теперь, когда я пытаюсь выполнить развертывание на нескольких серверах одновременно, он запрашивает мою парольную фразу, которая, как представляется, повторяется несколько раз:

(ips удалено мной)

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)

И это конец.

  1. Я могу использовать ssh без пароля на серверах, на которых я развертываю все нормально.
  2. Я почти уверен, что ssh-agent запущен, так как я могу нажимать Git без ввода кодовой фразы каждый раз
  3. Использование параметра 'forward_agent' в развертывании шапки не помогло.
  4. Это моя роль:
    role :app, "ip 1 removed", "ip 2 removed"
  5. Если я устанавливаю default_run_options[:max_hosts] = 1, он работает нормально, но запрашивает мою парольную фразу для каждого отдельного подключения к каждому хосту, на который я развертываю ... что в итоге оказывается много.

По сути, я ищу любое из нижеприведенных (но не ограничиваясь этим): - «Вы никогда не собираетесь исправлять это в Windows» - «Вот как вы получаете НАСТОЯЩЕЕ развертывание без пароля в capistrano» - «Вы пропустили этот параметр /особенность?" - «У меня есть камень, который все исправит, можешь одолжить»

Спасибо!

27.04.2010

Ответы:


1

На что установлена ​​пользовательская переменная? запустите простую команду вызова из каталога с Capfile, который должен попытаться выполнить на всех перечисленных серверах. Успешно ли подключается?

cap invoke COMMAND="echo 'Hello World'"

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

25.06.2010
  • У меня есть несколько этапов, поэтому я бы назвал: cap production invoke ... Это не удается, так как он запрашивает кодовую фразу для каждого сервера одновременно (то есть: меня спрашивают кодовую фразу несколько раз сразу, но мне не дают возможности введите его в 4 раза). запуск этого для отдельных серверов работает нормально, например: cap prod1 invoke ... Поскольку я могу успешно вызывать на любом отдельном сервере, я сомневаюсь, что это пользовательская переменная. Мне действительно нужно подключиться через vpn, интересно, имеет ли это какое-то отношение к этому. 26.06.2010

  • 2

    На самом деле я столкнулся с той же проблемой и исправил ее (на самом деле исправил), указав «default_run_options [: max_hosts] = 1» и используя ssh-agent для кэширования моей ключевой фразы. Конечно, это НЕ идеальное решение, и основная проблема остается скрытой под поверхностью.

    29.09.2010
  • Текущее обсуждение здесь: groups.google.com/group/capistrano/browse_thread/ поток / 29.09.2010
  • Когда я начинаю это делать, я должен предоставить ключ ssh для каждой команды, которая запускается для каждого сервера (всего около 30). У меня есть ssh-agent, но cap все равно его просит. (При выключенном ssh-agent спрашивает дважды) 30.09.2010

  • 3

    вы пробовали использовать putty-agent для хранения паролей ssh?

    возможно, это не прямой ответ, но вы можете установить msysgit и выбрать msysgit для полного добавления в PATH, а также выберите, чтобы использовать putty-agent для аутентификации.

    16.11.2010
  • спасибо, что напомнили мне об этом посте! Недавно я слышал, что capistrano на Windows поддерживает только Putty-agent, и попробовал его, но безрезультатно. Мне нужно еще немного поэкспериментировать с этим, и я обновлю здесь. 16.11.2010
  • только что добавил информацию о msysgit для конфигурации авторизации ssh 16.11.2010

  • 4

    У меня была почти такая же проблема (в Ubuntu 10.04), за исключением того, что вместо того, чтобы получить ошибку connection failed for..., он просто сидел и ничего не делал, пока я не нажал CTRL + C.

    Решение заключалось в том, чтобы вручную добавить мой SSH-ключ в мою связку ключей, набрав ssh-add /path/to/my/private/key. Он попросил меня ввести кодовую фразу, которую я ввел. Тогда я мог запускать cap production invoke COMMAND="hostname" и cap production deploy, даже не вводя свой пароль.

    У меня есть ssh_options[:forward_agent] = true набор.

    08.03.2012
    Новые материалы

    Обратное распространение в RNN объяснил
    Пошаговое объяснение вычислительных графов и обратного распространения ошибки в рекуррентной нейронной сети. Введение На заре машинного обучения, когда не было фреймворков, большая часть..

    Используйте Python для анализа рейтингов и обзоров курсов OMSCS Технологического института Джорджии
    Как получать и анализировать рейтинги курсов OMSCS, данные о сложности и рабочей нагрузке и компилировать их в интерактивную информационную панель Программа Онлайн-магистр компьютерных наук..

    Стеки и очереди в Python
    Стеки и очереди в Python Изучите 2 популярные линейные структуры данных. Зачем это читать? Стеки и очереди ( произносится как kyo͞o или kiu ) - это простые, но мощные структуры данных,..

    Matt’s Tidbits #99  — «Элегантная обработка нуля»
    На прошлой неделе я писал о некоторых крайних случаях правдоподобия в JavaScript . На этот раз у меня есть небольшая заметка об элегантной обработке нулевых/неопределенных значений. null..

    Обучение работе с AWS с Habana Gaudi
    Использование возможностей выделенных обучающих чипов DNN — часть 2 В октябре прошлого года AWS объявила о появлении типа инстанса Amazon EC2 DL1 . DL1, оснащенный восемью ускорителями..

    Сортировка вставками с помощью JavaScript
    Простые типы алгоритмов сортировки Пузырьковая сортировка ➝ O(n²) Сортировка вставками ➝ O(n²) Сортировка выбором ➝ O (n²) Сортировка слиянием ➝ O (n * log n) Быстрая сортировка ➝..

    Я попросил ChatGPT решить 5 вопросов по программированию LeetCode
    ChatGPT , диалоговый ИИ от OpenAI , выпущенный в ноябре 2022 года, может понять и ответить практически на все, что вы спросите. У него есть возможность писать стихи, штамповать эссе и писать..