刀ec2如何尊重" - bootstrap-version"争论?

时间:2018-02-15 15:02:13

标签: amazon-ec2 chef knife

看起来"刀ec2"不尊重" - bootstrap-version"适用于"刀引导"的参数。

对于Instance,这不起作用:

knife ec2 server create -I ami-932c5be9 -f t2.small -S chef -i /home/ted/chef_key --ssh-user ted --subnet subnet-4cd9d113 --json-attributes '{"policy_name": "web_server", "policy_group": "prod"}' -N teds_apache_server -g "sg-dec3f883" --tags Lifecycle="PROD",Installer="Ted",Application="Apache",--region us-east-1 --server-connect-attribute private_ip_address --bootstrap-template /home/ted/chef-repo/.chef/bootstrap/bootstrap_prd.erb --availability-zone us-east-1c --bootstrap-version 13.6.4

之后此实例将部署,但不会安装chef-client版本13.6.4。我将不得不做一个刀节点删除,刀客户端删除和ssh到实例并卸载chef-client包。之后我可以跑:

knife bootstrap chef@10.10.1.1 -i /home/ted/chef_key --sudo --ssh-user chef --json-attributes '{"policy_name": "web_server", "policy_group": "prod"}' -N teds_apache_server --bootstrap-template /home/ted/chef-repo/.chef/bootstrap/bootstrap_prd.erb --bootstrap-version 13.6.4

...这将安装最新版本。关于如何使用刀ec2工作的任何想法?

1 个答案:

答案 0 :(得分:0)

您正在使用自定义bootstrap-template文件,该文件可能会忽略引导版本属性chef_version。检查https://github.com/juliandunn/chef-bootstrap-templates以获取一组引导程序模板,并使用chef_version变量作为您自己的建议。

厨师default build-in-template尊重版本以构建latest_current_chef_version_string值,请参阅lib/chef/knife/core/bootstrap_context.rb