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

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

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

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

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 – Начало работы
  • Узнать шефа
  • Учебник повара
  • Мониторинг процесса sSSTP OpenSSH?
  • Как загрузить файл с сервера aws с помощью SSH?
  • Включение привилегий системного управления для нелокальных пользователей. Как все-таки работает `polkit`?
  • Разный каталог входа ssh из дома пользователя
  • Использовать прокси-сервер socks для команд в терминале
  • Список сохраненных отпечатков пальцев ssh
  • Перезапустить конкретный реверсивный туннель ssh?
  • Как настроить туннелирование ssh через брандмауэр?
  • Есть ли способ имитировать сокет, застрявший в CLOSE_WAIT или FIN_WAIT2?
  • Как я могу получить доступ к ящику Linux дома в своем браузере на работе?
  • Как управлять настольными приложениями через SSH
  • Сценарий оболочки для ssh на сервер Unix / Linux из MacOS X 10.10
  • Linux и Unix - лучшая ОС в мире.