Использование PPA для отправки простых обновлений

Использование PPA для отправки простых обновлений

Я хочу настроить PPA для отправки простых изменений на несколько сотен машин ubuntu 12.04 в полевых условиях. Простые изменения означают изменения скрипта bash и обновления файла конфигурации, а также, возможно, другие обновления программного обеспечения, включая новые установки программного обеспечения, которые можно установить через apt-get install. Несколько вопросов, которые пришли мне в голову, это:

  1. Можно ли использовать PPA для отправки обновлений скриптов?
  2. Могу ли я настроить клиентские машины на получение обновлений только из этого PPA и их автоматическую установку, как при неконтролируемых обновлениях? (Конечно, я знаю, что такой вариант возможен, но для этого требуется хороший набор инструментов).

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

решение1

Я хотел сделать то же самое, но выбрал частный репозиторий, созданный с использованием repreproPPA. Все мои клиенты находятся в одной локальной сети, поэтому для меня это проще. Я думаю, что это вполне работоспособно, независимо от того, используете ли вы PPA или частный репозиторий.

  • На мой взгляд , изменение существующих файлов конфигурации лучше всего осуществлять с помощью dpkgдиверсий.config-package-devэто благословение для этого.Вики Debianявляется хорошей отправной точкой для получения информации по этому вопросу.
  • Добавление файлов скриптов или собственного ПО не так уж и сложно, если упаковать их. Существует множество руководств по упаковке. Опять же,Вики Debianотличная отправная точка. Проще сделать бинарные пакеты, чем вступление, что будет в случае со скриптами и файлами конфигурации.
  • Добавление нового ПО из других репозиториев можно осуществить, сделав их зависимостями ваших пакетов. Укажите точную версию или используйтеaptзакрепление.
  • Автоматические обновления для пользовательских репозиториев уже реализованы:Как включить автоматическое обновление без вывода сообщений для любого репозитория?Я не знаю ни одного способа, которым сервер может отправлять обновления клиенту. Вы можете рассмотреть puppet(через kicking) или что-то подобное. Или вы можете написать скрипт на сервере, который использует SSH для запуска обновлений на клиенте. Или иметь скрипт, который проверяет наличие обновлений при появлении сети.
  • Прежде всего, убедитесь, что ваши скрипты обслуживания пакетов ( preinst, postinst, prerm, postrm) являются идемпотентными и что удаление пакета отменяет все изменения. Эти скрипты могут делать много вещей, но не делают ничего, что влияет на aptили dkpgв них. Минимизируйте работу, выполняемую в этих скриптах.

В моем случае я использую пакет для настройки LDAP и NTP, добавляю пользовательские глобальные vimrcобщие параметры, вношу различные изменения в конфигурацию (например, включение sudoдля группы, запрет выключения), добавляю непривилегированного локального пользователя/группу и т. д. Другой пакет добавляет наш самостоятельно сгенерированный сертификат CA и ключ подписи репозитория и помечает их как доверенные в скрипте postinst, а также добавляет запись sources.list.dдля нашего репозитория.

Я еще не перевел все системы на этот процесс, поэтому пока не могу ничего сказать о его эффективности.

Связанный контент