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

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

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

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

2 ответа

Решение

Test Kitchen - лучшее решение для тестирования кулинарной книги.

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

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

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

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

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