Назад | Перейти на главную страницу

Можно ли получить функциональность, подобную git, с помощью такого инструмента, как puppet?

Я думаю об удобном способе отслеживать мои конфигурации vps и развертывать их одним щелчком мыши (или более или менее).

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

Несмотря на то, что функции, предлагаемые Puppet, меня очень привлекают, и я, вероятно, воспользуюсь им, я не могу найти способ легко справиться с этой простой задачей.

Мне нужно поддерживать и изменять файлы конфигурации в / etc, и я действительно хотел бы избавиться от ssh -> vim или nano, или sftp ... Я хотел бы иметь всю папку на моей машине разработки и наслаждаться мощью и скорость возвышенного текста для их редактирования, затем выполните git commit, git push, -> перезапустите некоторые вещи и hopla, мы обновлены.

В марионеточной парадигме это больше похоже на:

file {'/tmp/test1':
  ensure  => file,
  content => "Hi.\n",
}

Первоначальные опасения по поводу того, что git не совсем подходит для такого рода развертывания (и не совсем уверен во всех связанных с этим рисках), заставили меня прочитать о puppet / chef, ...

Как решить эту проблему и существуют ли производственные системы, в которых вы используете git / git-deploy / etckeeper для редактирования конфигурации / etc в автономном режиме?

Такие инструменты, как puppet предназначены для приведения конфигурации в правильное состояние. Такие инструменты, как git предназначены для отслеживания версий файлов. Обе эти задачи называются управлением конфигурацией, что может привести к путанице. Далее я буду использовать контроль версий для обозначения таких инструментов, как gitи декларативное управление конфигурацией для обозначения таких инструментов, как puppet. Я предполагаю, что вам не нужно отслеживать, какая версия компонентов установлена ​​с помощью инструментов управления конфигурацией. Это может быть важно при воспроизведении ошибок. Инструменты управления конфигурацией могут отслеживать версии и могут использовать инструмент контроля версий для хранения инвентаризации.

Декларативное управление конфигурацией позволяет указать желаемую конфигурацию и способы ее достижения. После того, как вы определили желаемую конфигурацию и запустили инструмент, он выполнит указанные действия для установки и настройки требуемых компонентов. Рекомендуется использовать инструмент контроля версий для поддержания этой конфигурации.

РЕДАКТИРОВАТЬ: при запуске автоматической настройки важно запустить диспетчер пакетов в режиме, который не запрашивает значения конфигурации. (Ubuntu / Debian может использовать файл pre-seed для переопределения значений конфигурации по умолчанию.) Если менеджер пакетов обновляет файлы в /etc, вам нужно будет оценить изменения и, возможно, потребуется настроить декларативную конфигурацию. (Ubuntu / Debian отслеживает замену, добавляя расширение, например .dpkg-old или .dpkg-new к имени файла.) Я просматриваю изменения после обновления версии O / S, которая часто генерирует ряд изменений файла конфигурации.

Существует множество методов, которые можно использовать для обновления файлов конфигурации в /etc. Три, которые я использовал: - использование инструмента конфигурации платформы для обновления файлов (в Ubuntu / Debian для этого есть механизм предварительной настройки); - использование инструмента декларативного управления конфигурацией для редактирования файлов конфигурации; и - копирование файла конфигурации из центрального репозитория.

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

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

Подход, который я использую для обеспечения атомарных изменений, заключается в использовании инструмента управления версиями для предоставления конфигурации для моего инструмента управления декларативной конфигурацией. - Я редактирую конфигурацию в собственном рабочем каталоге. После завершения изменений я проверяю изменения и фиксирую их. - Главный сервер начинает свой процесс с обновления своей конфигурации. (В более крупной установке может быть два или более филиала и главные серверы, позволяющие передавать изменения на небольшой набор серверов для тестирования.) - Клиенты получают свои изменения конфигурации с главного сервера. - Инструмент управления декларативной конфигурацией сравнивает текущую конфигурацию с их конфигурацией и применяет все необходимые изменения.