我正在尝试使用 chef 在 rhel 机器中创建一些新的环境变量。
该 block 成功执行,但在尝试回显该值时,我得到黑色结果。
脚本 1:
execute 'JAVA_HOME' do
command 'export JAVA_HOME='+node['java']['home']
end
脚本 2:
bash 'env_test' do
code <<-EOF
echo $chef
EOF
environment ({ 'chef' => 'chef' })
end
还试了一下文档中提到的:
ENV['LIBRARY_PATH'] = node['my']['lib']
请让我知道我哪里出错了..
最佳答案
所以关于环境变量你需要知道的是它们只在一个方向上工作(父进程到子进程)所以子命令中的 export
在 execute
之后什么都不做> 资源完成。不过,第二个和第三个示例都有效,第二个示例仅针对 bash
资源进行设置,第三个示例针对 Chef 进程及其生成的所有内容进行设置。请记住,您需要使用 -l debug
运行才能查看 Chef 运行的子命令的输出。
关于linux - Chef 未创建环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380982/