Chef没有创建环境变量

时间:2018-03-20 09:51:29

标签: linux chef chef-recipe rhel7

我正在尝试使用chef在rhel机器中创建一些新的env变量。

块成功执行,但在尝试回显该值时,我得到黑色结果。

脚本-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']

请告诉我这里哪里出错..

2 个答案:

答案 0 :(得分:0)

因此,您需要了解的有关环境变量的事情是它们只能在一个方向上工作(子进程的父进程),因此子命令中的exportexecute资源完成后不执行任何操作。第二个和第三个例子都可以使用,第二个和第三个例子只用于bash资源,第三个用于Chef进程和它生成的所有内容。请记住,您需要与-l debug一起运行才能看到子命令Chef运行的输出。

答案 1 :(得分:0)

以上说明非常有用。使用chef更新/ etc / environments文件以确保下一个会话中存在env变量。还使用第3种方法使env变量可用于当前会话。