【问题标题】:Environment variables not getting created by ChefChef 未创建环境变量
【发布时间】:2018-08-29 01:50:16
【问题描述】:

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

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

Script-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']

请让我知道我哪里出错了..

【问题讨论】:

  • 我的意思是空白**结果不是黑色结果..抱歉错字

标签: linux chef-infra chef-recipe rhel7


【解决方案1】:

上面的解释很有帮助。使用 chef 更新 /etc/environments 文件以确保 env 变量在下一个会话中存在。还使用第 3 种方法使 env 变量可用于当前会话。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 有没有办法使用厨师永久设置环境变量?编辑 /etc/environment 文件是个好方法吗?
    • Linux 没有全局或永久环境变量的概念。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2019-09-26
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多