Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在chef中运行bash脚本文件?_Bash_File_Chef Infra - Fatal编程技术网

如何在chef中运行bash脚本文件?

如何在chef中运行bash脚本文件?,bash,file,chef-infra,Bash,File,Chef Infra,我编写了一个简短的bash脚本,并将其存储在文件/default/bash.sh中 我如何链接它以使其在我的主默认配方中运行?它需要像sudo一样运行,因为我使用的是ubuntu系统。在搜索了高低之后,我终于找到了答案: cookbook_file "/tmp/lib-installer.sh" do source "lib-installer.sh" mode 0755 end execute "install my lib" do command "sh /tmp/lib-in

我编写了一个简短的bash脚本,并将其存储在
文件/default/bash.sh


我如何链接它以使其在我的主默认配方中运行?它需要像sudo一样运行,因为我使用的是ubuntu系统。

在搜索了高低之后,我终于找到了答案:

cookbook_file "/tmp/lib-installer.sh" do
  source "lib-installer.sh"
  mode 0755
end

execute "install my lib" do
  command "sh /tmp/lib-installer.sh"
end

多亏了这个

如果脚本不太长,也可以通过。默认情况下,Chef运行的任何程序都使用与Chef运行的用户相同的用户,该用户通常已经是root用户。您可以使用
user
参数来执行
execute
bash
等操作,以切换到另一个用户,或者直接声明它应该是root,以使事情自记录为tad。

我不完全确定为什么这个问题被否决。我也有同样的问题,发现这很有用。如何从
lib installer.sh
到chef日志获取输出或
echo
?我假设lib-installer.sh应该在files/default中(您的OP使用的是bash.sh而不是lib installer.sh)