Мне нужно сохранить некоторые значения между запусками chef-client на узле. Из документов Chef я подумал, что для этого предназначены обычные атрибуты.
«В начале запуска шеф-клиента все атрибуты по умолчанию, переопределения и автоматические атрибуты сбрасываются... Обычные атрибуты никогда не сбрасываются... В конце запуска шеф-клиента все атрибуты по умолчанию, переопределения и автоматические атрибуты исчезнуть, оставив только набор обычных атрибутов, которые будут сохраняться до следующего запуска шеф-клиента.")
Однако, если я загружаю узел по следующему рецепту дважды
log 'message' do
message "Before setting I am #{node['my_key']}"
level :warn
end
node.normal['my_key'] = 'my value'
log 'message' do
message "After setting I am #{node['my_key']}"
level :warn
end
я ожидал увидеть
Перед установкой я - моя ценность
при втором прогоне (поскольку значение сохранилось с первого прогона). Однако он снова становится неустановленным.
Возможно ли, чтобы значение сохранялось? Нужно ли запускать рецепт по-другому? Или это просто невозможно?
EDIT: Насколько я вижу, запуск Chef успешно завершается. Вот команда и вывод:
mfreake@my-linux:/export/apps/chef/chef-repo/cookbooks$ knife bootstrap node1.blah.com --ssh-user mfreake --ssh-password 'yaddayadda' --sudo --use-sudo-password --bootstrap-proxy 'http://proxy.blah.com/' -N node1 --run-list persist_test::read_set_read
Node node1 exists, overwrite it? (Y/N) Y
Client node1 exists, overwrite it? (Y/N) Y
Creating new client for node1
Creating new node for node1
Connecting to node1.marketpipe.com
node1.blah.com [sudo] password for mfreake: -----> Existing Chef installation detected
node1.blah.com Starting first Chef Client run...
node1.blah.com Starting Chef Client, version 12.4.2
node1.blah.com resolving cookbooks for run list: ["persist_test::read_set_read"]
node1.blah.com Synchronizing Cookbooks:
node1.blah.com - persist_test
node1.blah.com Compiling Cookbooks...
node1.blah.com [2015-09-30T17:45:40+01:00] WARN: Cloning resource attributes for log[message] from prior resource (CHEF-3694)
node1.blah.com [2015-09-30T17:45:40+01:00] WARN: Previous log[message]: /var/chef/cache/cookbooks/persist_test/recipes/read_set_read.rb:2:in `from_file'
node1.blah.com [2015-09-30T17:45:40+01:00] WARN: Current log[message]: /var/chef/cache/cookbooks/persist_test/recipes/read_set_read.rb:9:in `from_file'
node1.blah.com Converging 2 resources
node1.blah.com Recipe: persist_test::read_set_read
node1.blah.com * log[message] action write[2015-09-30T17:45:40+01:00] WARN: A message add to the log.
node1.blah.com
node1.blah.com
node1.blah.com * log[message] action write[2015-09-30T17:45:40+01:00] WARN: A message add to the log. my value
node1.blah.com
node1.blah.com
node1.blah.com
node1.blah.com Running handlers:
node1.blah.com Running handlers complete
node1.blah.com Chef Client finished, 2/2 resources updated in 1.621458795 seconds
-o recipe
, объект узла также не сохраняется. Вы действительно из этих двух случаев? (Что касается вашего последнего вопроса, да, это возможно и предназначено) - person Tensibai   schedule 01.10.2015