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

Хранение дополнительных данных в файлах роли / среды .json для внешних (т.е. не Chef) приложений

Я подумываю преобразовать свои роли в синтаксис JSON и сохранить там дополнительные данные для внешнего приложения, не относящегося к шеф-повару (в частности, Vagrant). Моя идея состоит в том, что если я буду придерживаться соглашения, в котором каждая машина получает только одну роль, я могу заставить Vagrant перебирать каталог моих ролей и автоматически настраивать отдельную виртуальную машину для каждой из них.

Проблема в том, что для разных ролей могут потребоваться разные настройки Vagrant (например, ЦП, память, перенаправленные порты и т. Д.), Поэтому я решил, что могу хранить все это под ключом «vagrant» в каждом файле ролей. В ходе тестирования я обнаружил, что могу создавать любые ключи в этих файлах, и сервер Chef просто удаляет их при загрузке. И это нормально, потому что единственное, что когда-либо понадобится на них, - это Vagrant (который просто анализирует локальные файлы).

Что думают все? Это плохая идея? Я не понимаю, как это могло повредить чему-нибудь, но, поскольку я никогда не слышал, чтобы кто-то еще делал что-то подобное, я решил, что мне следует поспрашивать.

Тестовая Кухня - лучшее решение для тестирования поваренной книги.

Я не думаю, что есть какие-либо гарантии, что это будет работать вечно, но если это сработает сегодня, я не думаю, что это изменится в ближайшее время.

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

Я бы предпочел отдельный каталог, содержащий файлы yaml / json, чтобы Vagrant перебирал их, возможно, сопоставив их с ролями Chef по соглашению.

Несмотря на разногласия по некоторым деталям, я думаю, что это хорошая идея - как это сработало для вас?