Chef infra 在ssh运行时将CLI参数传递给chef客户端
我正在尝试使用chef自动化应用程序部署 我准备了一本通用的cookbook(基于输入属性值工作)来部署API。我已将所有属性保存在属性文件夹中 这里我面临的问题是,如果我在属性文件中保留包的版本号,我就能够成功地部署包。实际上,每次触发CD管道时,包号都会发生变化。我正在考虑使用chef client CLI功能,通过-j选项将参数作为JSON文件传递 问题是我不想每次触发CD管道时都用我的cookbook来更新包版本,因为如果我更新我的cookbook中的任何内容,我必须再次运行CI进行cookbook验证,同时我不能在每个节点(从50到500个服务器)保留一个文件并在触发chef客户端之前远程更新版本Chef infra 在ssh运行时将CLI参数传递给chef客户端,chef-infra,knife,databags,Chef Infra,Knife,Databags,我正在尝试使用chef自动化应用程序部署 我准备了一本通用的cookbook(基于输入属性值工作)来部署API。我已将所有属性保存在属性文件夹中 这里我面临的问题是,如果我在属性文件中保留包的版本号,我就能够成功地部署包。实际上,每次触发CD管道时,包号都会发生变化。我正在考虑使用chef client CLI功能,通过-j选项将参数作为JSON文件传递 问题是我不想每次触发CD管道时都用我的cookbook来更新包版本,因为如果我更新我的cookbook中的任何内容,我必须再次运行CI进行co
请帮助我找到将参数远程传递给ssh的方法。或解决此问题的任何其他解决方案。非常感谢。如果包版本被指定为属性,为什么不在chef环境中设置它呢 使用此方法,您可以选择为应用程序的每个版本创建环境:
- myapp_v1
- myapp_v2
- myapp_v3
- mydev
- myint
- 我的测试
- 迈卡
{
"name": "mytest",
"cookbook_versions": {
"myappcookbook1": "= 1.0",
"myappcookbook2": "= 2.0"
},
"override_attributes": {
"myapp1": {
"version": "1.0"
},
"myapp2": {
"version": "2.0"
}
}
}
谢谢马克·奥库纳!!。。。这个解决方案对我的问题很有意义。让我试试这个…再次感谢!!!!