Как применить поваренную книгу / рецепты к нескольким узлам?
Вот пример того, как применить поваренную книгу к узлу с шеф-поваром. Но ничего не сказано о нескольких узлах. Например у меня есть приложение akka, которое передается akka.cluster.seed-nodes
параметры. Итак, алгоритм должен быть:
- Определите массив "IP" с IP-адресами, такими как [192.168.1.1], [192.168.1.2], [192.168.1.3]
- Определите пустой массив "bootsrapped" с IP-адресами начальной загрузки
- начало итерации по "IP"
- взывать
knife bootstrap
с текущими ip и "pass"-Dakka.cluster.seed-nodes
с "загруженными" значениями - сохранить загруженный IP во втором массиве
- перейти к 3
Таким образом, цель состоит в том, чтобы написать скрипт, который может быть применен к нескольким узлам сервера. Как это сделать с шеф-поваром?
1 ответ
Вы не будете делать это на стороне сервера. Фактически, сервер даже не применяет рецепт к одному узлу. Если вы хотите, чтобы на них запускались несколько узлов chef с одинаковыми рецептами, вам просто нужно создать несколько узлов chef и дать им один и тот же run_list. Вы можете упаковать эти рецепты в роль, но это не меняет необходимости определять каждый из них в отдельности.
Если вы хотите написать это, вы должны сделать это на рабочей станции (узле, с которого запускаете нож). У вас может быть небольшой скрипт, который перебирает массив IP-адресов и каждый из которых запускается автоматически, или вы можете использовать такой инструмент, как Vagrant, для определения целого кластера узлов в одном файле DSL.