Хранение дополнительных данных в файлах ролей / среды.json для внешних (т.е. не-Chef) приложений
Я думаю о преобразовании своих ролей в синтаксис JSON и сохранении там некоторых дополнительных данных для внешнего приложения, не принадлежащего шеф-повару (в частности, Vagrant). Моя идея заключается в том, что, если я придерживаюсь соглашения, в котором каждая машина получает только одну роль, я могу заставить Vagrant перебирать каталог моих ролей и автоматически настраивать отдельную виртуальную машину для каждой.
Проблема в том, что для разных ролей могут потребоваться разные настройки Vagrant (например, процессор, память, перенаправленные порты и т. Д.), Поэтому я решил, что могу хранить все эти вещи под ключом "vagrant" в каждом файле роли. В ходе тестирования я обнаружил, что могу создавать любые ключи в этих файлах, которые мне нужны, и сервер Chef просто удаляет их при загрузке. И это хорошо, потому что единственное, что когда-либо нужно будет на них смотреть - это Vagrant (который просто анализирует локальные файлы).
Что все думают? Это плохая идея? Я не понимаю, как это могло бы повредить чему-либо, но, поскольку я никогда не слышал, чтобы кто-то еще делал что-то подобное, я решил, что должен спросить.
2 ответа
Test Kitchen - лучшее решение для тестирования кулинарной книги.
Я не думаю, что есть какие-либо гарантии, что это будет работать вечно, но если это сработает сегодня, я не думаю, что это скоро изменится.
Так что это не остановит меня, но я, вероятно, не буду этого делать - что произойдет, если вы захотите создать роль, у которой не должно быть соответствующей виртуальной машины? Например, базовая роль, абстрагирующая общие компоненты от двух других ролей.
Я бы предпочел отдельный каталог, содержащий файлы yaml/json для Vagrant, чтобы зацикливаться, возможно, отображая их в роли Chef по соглашению.
Несмотря на разногласия по некоторым деталям, я думаю, что это хорошая идея - как это сработало для вас?