Chef 11.6为此处记录的http://docs.opscode.com/essentials_environments.html#set-using-chef-solo
添加了对chef-solo的环境支持但是我找不到从JSON属性文件设置环境的方法。我已经尝试在json文件中设置environment
和chef_environment
个键,但似乎都不起作用。我可以通过solo.rb文件设置环境,但我想知道是否可以通过json属性文件?
chef-solo -l debug -c solo.rb -j node.json
solo.rb包含:
root = File.absolute_path(File.dirname(__FILE__))
cookbook_path root + '/cookbooks'
data_bag_path root + '/data_bags'
role_path root + '/roles'
environment_path root + '/environments'
verbose_logging :false
node.json包含:
{
"run_list": [ "recipe[env_log]" ],
"environment": "test1",
"chef_environment": "test2"
}
并且env_log配方中只有Chef::Log.info("Environment #{node.chef_environment}")
。
答案 0 :(得分:3)
它假设在运行-E
时,参数--environment
或chef-solo
指定了环境。例如:
chef-solo -l debug -c solo.rb -j node.json -E test2
如果您未指定此项,则node.chef_environment将为_default
。
请参阅chef-solo
答案 1 :(得分:0)
我没有使用Chef Solo作为我日常厨师任务的一部分,但我在实验时确实让这个工作了。我创建了一个文件 /etc/chef/solo.rb 并在文件中放置了如下环境:
environment "YOUR_ENV_NAME"
对于环境数据,我将所有厨师repo的环境文件复制到节点上的/ var / chef / environments
cp -r <repo>/environments/* /mnt/to/solo/node/var/chef/environments
我必须让厨师11.6才能工作。