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

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

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

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

  • Почему можно оставить CHROOT с помощью этой конфигурации sftp?
  • Как обеспечить, чтобы порт SSH был открыт только для определенного IP-адреса?
  • Кронтаб с SVN и Git
  • Есть ли способ использовать ssh удаленно без настройки брандмауэра?
  • ssh Проблема с открытым ключом
  • Выполнить команду на нескольких хостах, но только команду печати, если она выполнена успешно?
  • программно создавая удаленный каталог с помощью ssh
  • Преобразовать закрытый ключ OpenSSH в закрытый ключ SSH2
  • 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

    тип ksh с укрытием

    Как заставить ksh действовать так, как если бы он был вызван в качестве оболочки входа (AIX)?

    Невозможно сохранить значение ascii в переменной

    Как я могу однозначно определить, какое устройство находится на USB-узле 6-0: 1.0: порт 2??

    Проверьте настройки сна из командной строки?

    Как настроить на интервале выборки и пути журнала?

    Токсизировать строку из $ REPLY в скрипте bash

    Почему использование rev, когда ваш пейджер пользователя терпит неудачу, когда он снова переводит его через rev?

    Как скопировать несколько файлов, но сохранить их расширения одинаково?

    Процесс приостанавливается при асинхронном запуске

    Кто-нибудь когда-либо проверял правила брандмауэра OpenWrt по умолчанию?

    Не удается найти linux-заголовки-4.3.0-kali-amd64

    Что значит быть совместимым с «ш»?

    Почему команда shuf file> file оставляет пустой файл, но аналогичных команд нет?

    Запустить XTerm с пользовательской историей bash

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