Как применить поваренную книгу / рецепты к нескольким узлам?

Вот пример того, как применить поваренную книгу к узлу с шеф-поваром. Но ничего не сказано о нескольких узлах. Например у меня есть приложение akka, которое передается akka.cluster.seed-nodes параметры. Итак, алгоритм должен быть:

  1. Определите массив "IP" с IP-адресами, такими как [192.168.1.1], [192.168.1.2], [192.168.1.3]
  2. Определите пустой массив "bootsrapped" с IP-адресами начальной загрузки
  3. начало итерации по "IP"
  4. взывать knife bootstrap с текущими ip и "pass" -Dakka.cluster.seed-nodes с "загруженными" значениями
  5. сохранить загруженный IP во втором массиве
  6. перейти к 3

Таким образом, цель состоит в том, чтобы написать скрипт, который может быть применен к нескольким узлам сервера. Как это сделать с шеф-поваром?

1 ответ

Вы не будете делать это на стороне сервера. Фактически, сервер даже не применяет рецепт к одному узлу. Если вы хотите, чтобы на них запускались несколько узлов chef с одинаковыми рецептами, вам просто нужно создать несколько узлов chef и дать им один и тот же run_list. Вы можете упаковать эти рецепты в роль, но это не меняет необходимости определять каждый из них в отдельности.

Если вы хотите написать это, вы должны сделать это на рабочей станции (узле, с которого запускаете нож). У вас может быть небольшой скрипт, который перебирает массив IP-адресов и каждый из которых запускается автоматически, или вы можете использовать такой инструмент, как Vagrant, для определения целого кластера узлов в одном файле DSL.

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