gpt4 book ai didi

bash - 如何在我的控制台中显示 Opscode Chef bash 命令的输出?

转载 作者:行者123 更新时间:2023-11-29 08:46:26 26 4
gpt4 key购买 nike

我使用 Vagrant 生成一个标准的“precise32”框并使用 Chef 对其进行配置,这样我就可以在 Windows 机器上工作时在 Linux 上测试我的 Node.js 代码。这很好用。

我还有这个 bash 命令,所以它会自动安装我的 npm 模块:

bash "install npm modules" do
code <<-EOH
su -l vagrant -c "cd /vagrant && npm install"
EOH
end

这也很好用,只是如果它成功完成,我永远不会看到控制台输出。但我希望看到它,以便我们可以直观地监控正在发生的事情。这不是 npm 特有的。

我看到这个没有具体答案的类似问题:Vagrant - how to print Chef's command output to stdout?

我尝试指定标志,但我是一个糟糕的 linux/ruby n00b 并且创建错误或根本没有输出,所以请使用您的解决方案示例编辑我的代码段。

最佳答案

我尽可能使用日志记录,但我发现在某些情况下查看输出很重要。这是我这样做的简短版本。将执行资源替换为 bash 资源也可以正常工作。标准错误和标准输出都进入文件。

results = "/tmp/output.txt"
file results do
action :delete
end

cmd = "ls /"
bash cmd do
code <<-EOH
#{cmd} &> #{results}
EOH
end

ruby_block "Results" do
only_if { ::File.exists?(results) }
block do
print "\n"
File.open(results).each do |line|
print line
end
end
end

关于bash - 如何在我的控制台中显示 Opscode Chef bash 命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17813592/

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