2015-07-31 4 views
0

Я автоматизирую установку HDP Hadoop Cluster с помощью шеф-повара в кластере с тремя узлами. У меня есть следующие рецепты,Запуск определенного рецепта шеф-повара на узле после завершения всего рецепта на других узлах

  1. Ambari_Server
  2. Ambari_Agent
  3. Metastore
  4. Blueprint.

Я хочу запустить рецепт плана (4) на конкретном узле только после того, как весь рецепт (1,2,3) будет завершен во всех узлах (3 сервера). Ищите лучший вариант, чтобы сделать это здесь, используя шеф-повара.

Заранее спасибо.

+0

Вы можете попробовать использовать теги для связи перехода состояния на другом узле. По связанным вопросам см .: http://stackoverflow.com/questions/24497840/chef-how-reboot-vm-and-continue-performing-actions/24499852#24499852 –

+0

Спасибо Mark.I попробую. –

ответ

0

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

т.е.

Ambari_Server 
... 
node.set['Amari_Server']['installed'] = true 

Ambari_Agent 
... 
node.set['Amari_Agent']['installed'] = true 

Metastore 
... 
node.set['Metastore']['installed'] = true 

Blueprint 
... 
if node['Amari_Agent']['installed'] and node['Armari_Server']['installed'] and node['Metastore']['installed'] 
# Do whatever blueprint does 
... 

Это Hacky и потенциально требуют несколько сходится.

+0

Большое спасибо Jack.I попробую это. –