Как установить атрибуты узла шеф-повара с помощью вывода команды в рецептах шеф-повара - PullRequest
0 голосов
/ 16 июня 2020

Я могу получить версию пакета и сохранить ее в node.run_state ['installed_pkg_version'] и put отображает ожидаемое значение, но когда я получаю доступ к тому же атрибуту за пределами блока ruby, он пуст, поэтому кто-нибудь может предложить, где Я ошибаюсь ??

ruby_block "get installed package version" do
    block do
        Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)
        command = "/opt/<packagename>/package version | cut -d\"+\" -f1"
        command_out = shell_out(command)
        node.run_state['installed_pkg_version'] = command_out.stdout
        puts("#{node.run_state['installed_pkg_version']}")
    end
    action :create
end

chef-client, на котором я работаю, - 14.14.29

...