Шеф-повар новый рецепт веб-узла
Я новичок от шеф-повара и работаю над рецептом "новый веб-узел", который создает сервер с нуля и делает с ним много вещей, пока он не достигнет необходимого состояния. Я правильно понял эту часть, и пока все хорошо, но мне нужно сделать еще одну задачу, и вот тут я запутался в использовании 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]
Это может быть проанализировано в шаблоне.