Я хочу добавить команды для отправки белого списка заданий на несколько узлов без редактирования по одному, есть ли способ сделать это?
Я уже пробовал это:
knife exec -E 'nodes.transform("name:A_NODE_NAME") do |n|
n.set["push_jobs"]["whitelist"]["ntpdate"] = "ntpdate -u time"
end'
как сказано здесь, но это не работает:
Команда работает хорошо,
knife exec -E 'nodes.transform("name:zookeeper03") do |n|
n.set["push_jobs"]["whitelist"]["dns"] = "chef-client -r system-configs::dns"
end'
затем я использую knife node edit zookeeper03
, и редактор показывает мне
{
"name": "zookeeper03",
"chef_environment": "_default",
"normal": {
"tags": [
],
"push_jobs": {
"whitelist": {
"dns": "chef-client -r system-configs::dns"
}
}
}
но когда хвост журналов в этом узле после запуска задания ножа запуска «dns» zookeeper03, журнал показывает:
ERROR: [zookeeper03] Received commit c1fa30942d664c6df7213c71d79a74f3, but command 'dns' is not in the whitelist!
Любое предложение?
заранее спасибо
nodes.transform
выглядит нормально. Одна проблема с редактированием атрибутов узла заключается в том, что если на этой машине активен режим демона, когда вы выполняете редактирование, он может быть растоптан из-за условий гонки API. Попробуйте сначала остановить службу шеф-повара на этом узле? - person coderanger   schedule 26.04.2016