Chef infra 厨师:设置环境变量
我需要在Centos/7机器上设置OS环境变量 我已经在我的Chef infra 厨师:设置环境变量,chef-infra,Chef Infra,我需要在Centos/7机器上设置OS环境变量 我已经在我的variables.rb文件中尝试过: host = 'locahost' port = 9201 ENV['LV_ES_HOST'] = host ENV['LV_ES_PORT'] = '#{port}' 然而,在壳牌公司: $ echo $LV_ES_HOST $ 如何设置Os环境变量 是否可以设置一个仅对用户可见的OS环境变量 我需要一个OS可用的环境变量,以便我的jee应用程序能够读取其值 我在我的机器上运行了几个je
variables.rb
文件中尝试过:
host = 'locahost'
port = 9201
ENV['LV_ES_HOST'] = host
ENV['LV_ES_PORT'] = '#{port}'
然而,在壳牌公司:
$ echo $LV_ES_HOST
$
我在我的机器上运行了几个jee容器,应用程序在需要获取LC_ES_主机环境变量的情况下运行。另一个问题并不能真正解释根本问题。Unix环境变量在
fork()
期间从父进程继承到子进程。因此,当您通过Chef代码中的ENV
设置内容时,它确实会影响通过execute
资源运行的类似Chef的内容下的子流程。但是,当您通过SSH登录时,shell不是chef-client
的子进程,因此这些变量不可见。不幸的是,Unix没有针对全局环境变量的通用解决方案,因此您需要从另一个问题中列出的许多折衷方案中选择一个。用户环境变量是否可能重复?我记得我能够设置用户可以使用哪些环境变量……好吧,你的问题从OS env var开始。但是每个用户也可以使用它们。如果您需要在启动守护程序时使用其他方法,但这通常取决于目标应用程序。那么用户环境变量呢?我记得我能够设置用户可以使用的环境变量…您必须在shell init脚本中为该用户在其主目录中设置每个用户的变量。是的,我的意思是。不过,使用chef可以吗?当然,这些只是文件,因此您可以像使用模板
或文件
资源编写其他文件一样编写它们。