Chef infra 使用刀子在服务器上引导配方并转发版本参数
我有一个非常简短的食谱,看起来像这样:Chef infra 使用刀子在服务器上引导配方并转发版本参数,chef-infra,knife,Chef Infra,Knife,我有一个非常简短的食谱,看起来像这样: 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
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]" --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
我想知道如何在我的刀子命令中传递一个版本号,并将bash脚本更改为也接受该版本,如下所示:
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]" --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
配方应该是这样的:
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]" --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
bash“安装应用程序”怎么办
cwd“/var/lib/app”
代码是的。。u可以在运行时传递参数。因为你想让别人看到一个版本
node.default['version']=node['version'].to_hash
node.default['version']。每个do | version,version_值|
bash "install app" do
cwd "/var/lib/app"
code <<-EOH
npm set registry http://npm.app.com/
npm install app@<@ = version_value>
EOH
end
bash“安装应用程序”怎么办
cwd“/var/lib/app”
代码签出答案