我有一个非常短的食谱,看起来像这样:
bash "install app" do
cwd "/var/lib/app"
code <<-EOH
npm set registry http://npm.app.com/
npm install app
EOH
end
我运行以下刀具命令:
knife bootstrap 1.2.3.4 --ssh-user root --ssh-password password --ssh-port 22 --run-list "recipe[myapp]"
我想知道如何在我的knife命令中传递版本号并更改bash脚本以获取该版本,如下所示:
knife bootstrap 1.2.3.4 --ssh-user root --ssh-password password --ssh-port 22 --run-list "recipe[myapp]" --ver 2.2.30
配方应如下所示:
bash "install app" do
cwd "/var/lib/app"
code <<-EOH
npm set registry http://npm.app.com/
npm install app@2.2.30
EOH
end
我在刀引导手册上读到了我可以使用'-j'标志来传递json参数但是我找不到任何关于如何在配方中实际使用这些json参数的例子。
答案 0 :(得分:0)
是的..你可以在运行时传递参数。因为你想看一个版本
node.default [&#39;版本&#39;] =节点[&#39;版本&#39;]。to_hash
node.default [&#39; version&#39;]。每个do | version,version_value |
bash "install app" do
cwd "/var/lib/app"
code <<-EOH
npm set registry http://npm.app.com/
npm install app@<@ = version_value>
EOH
end
bootstrapping命令:
刀具引导程序1.2.3.4 -x root -P password -r&#34; recipe [myapp]&#34; -j&#39; {&#34;版本&#34;:{&#34; version_value&#34;:&#34; 2.2.30&#34;}}&#39;