Шеф-повар новый рецепт веб-узла

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

Вот как я сейчас делаю вещи:

 # knife rackspace server create --server-name chef-node1 --node-name chef-node1 --flavor performance1-2 --image 042395fc-728c-4763-86f9-9b0cacb00701

После того, как сервер создан, я добавляю рецепт и запускаю шеф-клиента на новом узле.

# knife node run_list add chef-node1 recipe[new-web-node::default]
# knife ssh -a ipaddress 'name:chef-node1' 'chef-client'

Мой вопрос: как мне отредактировать этот файл php .conf на другом сервере, не создавая новый рецепт, который я должен вручную запустить на этом другом сервере? Как это можно сделать за один раз?

1 ответ

Решение

Используйте поиск для поиска "другого" узла на основе определенной роли, рецепта или атрибута. Затем поместите IP-адрес этого другого узла в шаблон, создающий ваш файл конфигурации php.

Представьте, что ваш веб-узел играет роль webтогда этот код на вашем "другом" узле даст вам IP-адрес вашего первого веб-узла:

web = search(:node, "role:web")
ip = web.first[:ipaddress]

Это может быть проанализировано в шаблоне.

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