Развертывание приложения поверх ssh

Моя работа требует часто обновлять версии программного обеспечения, скомпилированного Centos, на клиентских ПК через несколько переходов ssh. В последнее время это стало неуправляемым. Какое программное обеспечение может быть использовано для автоматизации процесса?

Мне нужно что-то, что будет принимать кучу обновленных файлов, передавать их по scp / ssh и автоматически запускать скрипт unpack / replace на удаленном хосте. Есть ли такое программное обеспечение или доступно для записи простым скриптом bash?

В идеале, я хочу написать (на моей собственной машине) «helperappname hostname packagefile» и иметь вспомогательное приложение для развертывания. или что-то типа того.

  • Отключение проверки ключа хоста openssh в локальной сети
  • Начало запуска сервера OpenSSH с результатом «тайм-аут»
  • Как выйти из всех активных сеансов?
  • Предоставить парольную фразу для запроса plymouth ask-for-password из командной строки
  • Могу ли я установить цвета терминала на локальном компьютере, чтобы использовать те, которые были в машине I ssh?
  • Как избежать вызова «startx» при входе в ssh
  • В чем разница между SSH и Squid при использовании их в качестве прокси?
  • Xterm не полностью стирает полевые линии
  • 2 Solutions collect form web for “Развертывание приложения поверх ssh”

    Если все ваши целевые компьютеры CentOS, я бы порекомендовал попробовать объединить приложения в качестве RPM. Как только вы это преодолеете, вы можете легко автоматизировать комплектацию более новых версий, и развертывание становится простым вопросом для создания репо, доступного для всех целевых серверов (которые могут иметь трудности со своими собственными) и запуска просто «yum update» »или« yum install »на каждом клиенте, на котором вы хотите обновить / установить программное обеспечение. Временные инвестиции будут несколько большими – порядка недели или двух, если вы будете учиться быстро, но ваше возвращение будет огромным – сокращение времени установки до 30 секунд на каждой целевой машине.

    Это довольно плотная область инструментов, доступных для этого типа задач. Как вы уже упоминали, вы можете существенно свернуть свои собственные с помощью простых сценариев оболочки вплоть до инструмента управления конфигурацией, такого как cfengine или марионетка.

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

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

    В Википедии есть довольно хороший список этих типов инструментов: сравнение программного обеспечения для управления конфигурацией с открытым исходным кодом .

    Это инструменты, которые я использовал в прошлом, которые хорошо работают и имеют разную степень сложности при их настройке и запуске.

    • Capistrano
    • Поваренная соль
    • Кукольный
    • шеф – повар
    • Cfengine
    • выход в открытый космос

    Из вышесказанного я использовал большинство из них и могу сказать, что, возможно, Capistrano и / или Chef были бы хороши, чтобы начать работу. Но, как я уже сказал, я бы, вероятно, сначала применил подход к оболочечным сценариям, а затем задумался над одним из этих решений на более длительный срок.

    более легкие варианты веса

    Если вышеуказанные параметры все еще слишком тяжелые, есть также инструменты, такие как myrpm . Это, по сути, интерфейс rsync и ssh но он позволяет вам работать с группой серверов, которые вы настраиваете в текстовом файле. myrpm дает вам команды, такие как:

    • putKey
    • deployKeys
    • масс-Rsync
    • масс-SSH-удаленный Exec
    • масс-SSH-дистанционного-CMD

    Это позволяет вам нажимать клавиши ssh на различные хосты, нажимать на них файлы, запускать удаленные команды на серверы и запускать одноразовые команды, такие как yum -y update .

    Рекомендации

    • 2.x Начало работы Capistrano – Начало работы
    • Узнать шефа
    • Учебник повара
    Linux и Unix - лучшая ОС в мире.