我们的一个应用程序使用 gunicorn 并通过厨师食谱进行配置。
食谱有一些属性,其中之一是 gunicorn 版本:
grep 'version' attributes/default.rb
default['myapp']['gunicorn']['version'] = '19.1.1'
19.3.0
只有当节点是特定角色的一部分时,我才想使用版本。我创建了一个角色并赋予它一个属性:
cat ../../roles/gunicorn-19.3.0.rb
name 'gunicorn-19.3.0'
default_attributes(
'mcnulty' => {
'gunicorn' => {
'version' => '19.3.0'
}
}
)
鉴于角色属性优先于说明书属性,这应该有效。对??
现在我想用厨房来测试一下。在kichen.yml
我们已经有一个default
套件中,我复制并创建了一个gunicorn-19.3.0
套件:
- name: gunicorn-19.3.0
roles_path: '../../roles'
run_list:
- recipe[apt]
- recipe[build-essential]
- recipe[myapp]
attributes: &attributes
myapp:
gunicorn:
query:
timeout: 5
workers: 2
sockdir: /var/run/myapp
web:
timeout: 5
workers: 2
sockdir: /var/run/myapp
现在我无法弄清楚如何模仿这个主持人是gunicorn-19.3.0
角色的一部分的事实......
任何帮助表示赞赏。
最好的。