我是Chef和Ruby的新手
我需要在命令行上将两个变量传递给Chef,并在配方中提供这些变量.
我如何捕捉这些价值观并将其送到厨师手中?
我需要这样的东西:
before_deploy command
execute param1 param2
deploy{ param1/param2}
Run Code Online (Sandbox Code Playgroud)
凡param1与param2从命令行运行时得到他们的价值观.
通过运行配置机器时
chef-solo
Run Code Online (Sandbox Code Playgroud)
要么
chef-client
Run Code Online (Sandbox Code Playgroud)
您无法为这些命令提供任何参数,这些参数对于食谱是可见的.厨师食谱仅适用于属性.好的(或不那么好)是可以从许多不同的地方设置属性:角色,节点,环境和json文件.
与您的请求最接近的解决方法是
chef-client或chef-solo例如:apache config.
创建json文件:my_attrs.json
{
"apache": {
"listen_port": "81",
"listen_path": "/myapp"
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的食谱中使用它们:
node[:apache][:listen_port]
node[:apache][:listen_path]
Run Code Online (Sandbox Code Playgroud)
跑chef-client或chef-solo带-j旗帜.
chef-solo -j my_attrs.json
Run Code Online (Sandbox Code Playgroud)
如果my_attrs.json在某个远程服务器上,那么您可以提供一个URL.
chef-solo -j http://remote.host/path/my_attrs.json
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5751 次 |
| 最近记录: |