Атрибуты шеф-повара и сумки с данными
Я новичок в Chef, и после прочтения документации у меня все еще возникают проблемы с пониманием того, когда использовать атрибуты и когда использовать пакеты данных.
Какие данные должны храниться в виде атрибутов, а какие данные должны храниться в пакетах данных?
Спасибо
2 ответа
Смотря как. Хотя пакеты данных и атрибуты содержат данные, основное различие между ними заключается в том, что атрибуты отображаются как свойства узла при запуске рецепта, но у вас нет четкого представления о том, какие пакеты данных использовались (за исключением того, что вы просматриваете рецепты в список запуска).
Что я лично храню в атрибутах:
- Пути, где что-то (файлы, программы) установлено, создано
- Версии программного обеспечения
- URL-адреса, порты (для загрузки, прослушивания серверов и т. Д.)
- Usernames
И в данных мешках:
- Все, что не может быть разоблачено - в зашифрованных пакетах данных (личные ключи, пароли)
- пользовательские свойства (имя, оболочка, хеши паролей, открытый ключ, комментарии и т. д.)
- Некоторые другие конфигурации, которые больше похожи на объекты, но не на простые строковые или числовые данные, и это не важно для самого узла.
О последнем пункте: пример - список репозиториев maven. Репозиторий имеет свойства: name, url, policy и т. Д. И для узла не важно, какие репозитории настроены - важно, чтобы на нем был установлен maven. Другой пример - пользователь, в атрибутах есть только доступные имена пользователей. Все остальные данные находятся в сумке данных, хотя они могут быть раскрыты - никаких секретных данных там нет.
Конечно, это одна из тех вещей, где нет простого ответа. Мое эмпирическое правило заключается в том, что все, что является одним из многих, принадлежит пакету данных. Например, если у вас есть список пользователей и групп, которые вы хотите создать на узле с помощью поваренной книги пользователей fnichol, тогда это пакет данных. Для настройки параметров на сервере MySQL, тогда это атрибуты.