Атрибуты шеф-повара и сумки с данными

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

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

Спасибо

2 ответа

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

Что я лично храню в атрибутах:

  • Пути, где что-то (файлы, программы) установлено, создано
  • Версии программного обеспечения
  • URL-адреса, порты (для загрузки, прослушивания серверов и т. Д.)
  • Usernames

И в данных мешках:

  • Все, что не может быть разоблачено - в зашифрованных пакетах данных (личные ключи, пароли)
  • пользовательские свойства (имя, оболочка, хеши паролей, открытый ключ, комментарии и т. д.)
  • Некоторые другие конфигурации, которые больше похожи на объекты, но не на простые строковые или числовые данные, и это не важно для самого узла.

О последнем пункте: пример - список репозиториев maven. Репозиторий имеет свойства: name, url, policy и т. Д. И для узла не важно, какие репозитории настроены - важно, чтобы на нем был установлен maven. Другой пример - пользователь, в атрибутах есть только доступные имена пользователей. Все остальные данные находятся в сумке данных, хотя они могут быть раскрыты - никаких секретных данных там нет.

Конечно, это одна из тех вещей, где нет простого ответа. Мое эмпирическое правило заключается в том, что все, что является одним из многих, принадлежит пакету данных. Например, если у вас есть список пользователей и групп, которые вы хотите создать на узле с помощью поваренной книги пользователей fnichol, тогда это пакет данных. Для настройки параметров на сервере MySQL, тогда это атрибуты.

Другие вопросы по тегам