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

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

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

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

  • $ HOME readonly: / usr / bin / xauth: тайм-аут в файле блокировки /home/fooftp/.Xauthority
  • Как экспортировать функцию в bash через ssh?
  • Пусть передача выполняется на сервере, независимо от сеанса SSH
  • Целое число после имени пользователя в клиенте OpenSSH, разделенное двоеточием
  • Перенесите файл с Android на ПК (не в той же сети)
  • У вас есть сценарий bash для ожидания пароля
  • Попытка подключения SSH к машине с использованием домена
  • Хвост журнальных файлов на двух разных хостах
  • 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 – Начало работы
    • Узнать шефа
    • Учебник повара
    Interesting Posts

    Добавление заголовка в исходящую электронную почту с постфиксным

    Размер образа ddrescue на диске

    Клавиши увеличения / уменьшения громкости, ограниченные уровнем громкости Gnome-volume «Unamplified 100%»

    SSH для машин в новой подсети – таймаут соединения

    Каков эффект разделителя пути в начале переменной окружения?

    Входной пользовательский журнал Rsyslog

    Ошибка ядра CentOS 2.6.32-431.el6.x86_64

    Совпадение всех шаблонов из файла сразу

    Разрешения пользователя и группы для доступа к файлам и файлам mnt в CentOS 7

    Каково состояние драйверов Poulsbo / GMA 500 с открытым исходным кодом?

    Необходимо проанализировать таблицу двойного входа с двумя парами

    Как я могу гарантировать, что только пользователь root имеет право остановить или перезагрузить систему?

    Как добавить параметры загрузки в arch linux

    Как я могу распаковать gz-файлы в произвольных каталогах и хранить распакованные файлы в тех же самых каталогах?

    Ошибка перезапуска rsyslog

    Linux и Unix - лучшая ОС в мире.