测试Chef角色和环境
|
我是Chef的新手,并且一直使用 Test Kitchen来测试我的cookbook的有效性,这非常有用.现在,我正在尝试确保在最初运行Chef之前,生产节点上的特定于环境的属性是正确的.这些将在一个角色中定义. 例如,我可能会使用带有开发设置的Vagrant框进行收敛,这样可以验证菜谱.我希望能够测试生产节点的角色.我想我希望这些测试作为描述我的环境的真相来源.看看Test Kitchen的文档,这似乎超出了它的范围. 我的假设是否正确?在首次在生产节点上运行Chef以确保其具有正确设置之前,是否有更好的方法来测试食谱? 我很高兴地发现chef_zero使用“test / integration”目录作为它的主厨库.只需创建您的角色 >测试/集成/角色 例 标准厨师食谱布局. ├── attributes
│ └── default.rb
├── Berksfile
├── Berksfile.lock
├── chefignore
├── .kitchen.yml
├── metadata.rb
├── README.md
├── recipes
│ └── default.rb
└── test
└── integration
├── default
│ └── serverspec
│ ├── default_spec.rb
│ └── spec_helper.rb
└── roles
└── demo.json
.kitchen.yml ---
driver:
name: vagrant
provisioner:
name: chef_zero
platforms:
- name: ubuntu-14.04
suites:
- name: default
run_list:
- role[demo]
attributes:
笔记: >供应商是chef_zero 食谱/ default.rb file "/opt/helloworld.txt" do
content "#{node['demo']['greeting']}"
end
属性/ default.rb default['demo']['greeting'] = "hello world" 笔记: >如果没有默认值,Cookbook将无法编译 测试/集成/默认/ serverspec / default_spec.rb require 'spec_helper'
describe file('/opt/helloworld.txt') do
it { should be_file }
its(:content) { should match /this came from my role/ }
end
笔记: >集成测试正在查找由role属性设置的内容 测试/集成/角色/ demo.json {
"name": "demo","default_attributes": {
"demo": {
"greeting": "this came from my role"
}
},"run_list": [
"recipe[demo]"
]
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
