Конфигурация filebucket в Puppet

11

Как вы настраиваете и работаете с вашей файловой корзиной Puppet?

Я хотел бы:

  1. Хранить данные о файлах на одном сервере
  2. Уметь проверять / анализировать / удалять файл, когда это необходимо
  3. Убедитесь, что данные filebucket надежно передаются между client-> master
robbyt
источник

Ответы:

16

Ну, в классе, который включен во все мои узлы, я получил:

filebucket { puppet: server => "puppet.example.edu" }

По умолчанию в поле «Тип файла» выполняется резервное копирование в локальную файловую корзину с именем «puppet». Изменив набор файлов «puppet» на набор файлов сервера, вы по умолчанию получаете файл-пакет сервера.

В качестве альтернативы, если вы хотите сохранить возможность переопределения одного конкретного файла для использования локального filebucket, вы можете сделать:

filebucket { main: server => "puppet.example.edu"; }
File { backup => main }

См. Http://docs.puppetlabs.com/references/latest/type.html#filebucket для получения дополнительной информации о параметрах.

Это завершает пункт № 1, потому что он сообщает узлам, чтобы все использовали один и тот же сервер для файловой корзины. Пункт № 3 предоставляется бесплатно, поскольку он все еще проходит через соединение на основе SSL с проверкой SSL-сертификата.

Filebucket в основном полезен в случае восстановления, которое, вероятно, будет в тот же день. В этом случае посмотрите на отчет и используйте команду « filebucket» или « puppet filebucket» для извлечения исходного содержимого на основе суммы md5 в отчете.


Пункт № 2, где все становится сложнее ...

Я сокращаю это с помощью сценария, как это:

find /var/lib/puppet/clientbucket/ -type f -mtime +45 -atime +45 -delete

Это удаляет все, что старше 45 дней, и к которому не было никакого доступа в то время. 45 дней основаны на нашей политике резервного копирования и хранения резервных копий, поскольку этого достаточно для создания резервной копии с длительным сроком хранения и теоретическим временем восстановления 18 месяцев.


Какой разбор вы ищете? Настройка контейнера на сервере представляет собой иерархию, организованную md5sum, и внутри имени каталога, соответствующего md5sum, есть «пути», указывающие, какой файл и «содержимое» является фактическим файлом. Вам нужно просмотреть отчеты, чтобы увидеть, из какой системы это произошло.


Я не делаю одитинга. Какой вид аудита вы ищете? Это может означать много вещей.

Freiheit
источник
Спасибо, на самом деле это очень полезно. Я не осознавал, что настроить централизованный сервер filebucket в puppetmaster было так просто! Есть несколько заявок на новые функции, которые открываются для улучшения инструментов управления файловыми пакетами @puppetlabs. Похоже, это немного незрелый в данный момент. Моя центральная файловая корзина теперь заполняется файлами, но у меня нет возможности определить, с какого хоста были созданы файлы. Ваш 1-лайнер полезен, однако.
Роббыт
Я думаю, что если несколько хостов имеют одинаковые файлы, попадающие в файловую корзину, она будет сохранена только один раз, поэтому взаимосвязь между файлами в файловой корзине и хостами не проста.
Freiheit
0

Одно из предложений - добавить файлы на сервер контроля версий (svn, git). Я храню все файлы, которые связаны с определенным модулем, в каталоге модулей в папке / files. Когда файл модифицируется, он регистрируется в SVN и передается мастеру с помощью хуков.

Например, у меня есть модуль, который управляет postfix и передает / etc / postfix / virtual файлы клиентам. Эти файлы хранятся в / etc / puppet / modules / postfix / files.

Это дает вам преимущество повторного использования кода, созданного в ваших модулях, а также организации файлов по модулям.

st3v3o
источник
2
filebucket! = файловый сервер. Я сделал ту же ошибку, прочитав вопрос в первый раз.
Sirex
да, я говорю о марионеточном архиве. Система в Puppet, которая перемещает замененные файлы в промежуточную область, а не просто удаляет их. linux.die.net/man/8/filebucket
robbyt
На самом деле я тоже не понимаю. Если у вас есть все версии конфигурационных файлов в git repo, зачем связываться с filebucket? Случайно удалив что-то еще? Удаление чего-то другого довольно явно в марионетке. IMHO filebucket был разработан для людей без контроля версий вообще.
Арт Шайдеров
Нет, filebuckets полезны только для ручного извлечения случайно удаленных / перезаписанных файлов (например, вы ищете в журнале сумму md5 и извлекаете файл с этой суммой из filebucket), но когда транзакции полностью поддерживаются, filebuckets будут использоваться для отменить транзакции.
Мартейн Химельс