Как записать значение node.run_state в рецепт шеф-повара? - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть рецепт, как показано ниже

target = node['zookeeper']['override']['target']
remote_file target do
    source node['zookeeper']['override']['url']
    owner   'root'
    group   'root'
    mode    '0644'
    action  :create_if_missing
end

ruby_block 'check_zookeeper_upgraded' do
    block do
        node.run_state['zookeeper_upgraded'] = File.readlink('/usr/lib/zookeeper/zookeeper.jar').equal?(target)
    end
end

link '/usr/lib/zookeeper/zookeeper.jar' do
    group 'root'
    owner 'root'
    to target
    action :create
    not_if { node.run_state['zookeeper_upgraded'] }
end

file '/usr/lib/zookeeper/zookeeper-3.4.8.jar' do
    action :delete
    only_if { ::File.exist? '/usr/lib/zookeeper/zookeeper-3.4.8.jar' }
end

file '/usr/lib/zookeeper/zookeeper-3.4.5-cdh5.15.0.jar' do
    action :delete
    only_if { ::File.exist? '/usr/lib/zookeeper/zookeeper-3.4.5-cdh5.15.0.jar' }
end

service 'zookeeper-server' do
    provider Chef::Provider::Service::Upstart
    action :restart
    ignore_failure true
    only_if { !node.run_state['zookeeper_upgraded'] && !::File.exist?('/etc/init/zookeeper-server.override')}
end

Может кто-нибудь сообщить мне, как я могу записать значение node.run_state['zookeeper_upgraded'], чтобы я мог проверить, перезапущен ли zookeeper-server или нет в конце?

...