gpt4 book ai didi

chef-infra - 如何将 Chef 'execute resource' 的输出放入变量中

转载 作者:行者123 更新时间:2023-12-03 11:28:00 25 4
gpt4 key购买 nike

我想将 shell 命令的输出放入一个变量中,以便以后在 Chef 配方中使用。

在 bash 中,我可以做类似 output=`tail -1 file.txt` 的事情然后我可以 echo $output
“执行资源”可以这样做,以便我稍后可以在配方中使用结果吗?

最佳答案

虽然 Graham 的解决方案起初似乎有效,但我发现了 Chef::Mixin:ShellOut

ruby_block "check_curl_command_output" do
block do
#tricky way to load this Chef::Mixin::ShellOut utilities
Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)
curl_command = 'curl --write-out %{http_code} --silent --output /dev/null '+node['url']
curl_command_out = shell_out(curl_command)
if curl_command_out.stdout == "302"
...
else
...
end
end
action :create
end

如果您需要以特定用户身份运行命令,Chef::Mixin:ShellOut 特别有用(参见 http://www.slideshare.net/opscode/chef-conf-windowsdougireton):
ruby_block "run_command_as" do
block do
Chef::Resource::RubyBlock.send(:include,Chef::Mixin::ShellOut)
add_group = shell_out("your command",
{
:user => "my_user",
:password => "my_password",
:domain => "mycorp.com"
}
)
end
end

关于chef-infra - 如何将 Chef 'execute resource' 的输出放入变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com