接受版本大于等于14的Chef Infra Client许可协议

时间:2019-06-21 19:30:12

标签: chef chef-recipe cookbook

我正在尝试通过使用命令knife bootstrap <host> --ssh-user '<username>' -i <my-identity>.pem --sudo --use-sudo-password --node-name <node-name> --run-list 'recipe[<cookbook-name>::default]'

使用Chef来引导节点

但是,由于我不能接受许可证而失败了

4 -----> Existing Chef installation detected
137.252.24.94 Starting the first Chef Client run...
137.252.24.94 +---------------------------------------------+
137.252.24.94             Chef License Acceptance
137.252.24.94
137.252.24.94 Before you can continue, 2 product licenses
137.252.24.94 must be accepted. View the license at
137.252.24.94 https://www.chef.io/end-user-license-agreement/
137.252.24.94
137.252.24.94 Licenses that need accepting:
137.252.24.94   * Chef Infra Client
137.252.24.94   * Chef InSpec
137.252.24.94
137.252.24.94 Do you accept the 2 product licenses (yes/no)?

我无法从主机输入答案。我曾经能够在Chef 14.0之前轻松运行chef boostrap命令。好像他们已升级到Chef 14.0,并且新的升级对许可协议具有强制性要求。我该如何从主机将许可证授予客户端计算机?

2 个答案:

答案 0 :(得分:1)

基本上,根据我的发现,此问题可能在两种不同的情况下发生:

  1. 运行kitchen converge时。通过在kitchen.yml内添加如下代码很容易解决

    provisioner:
      client_rb:
        chef_license: accept
    
  2. 运行knife bootstrap时,这可能需要一点额外的工作。 page解释了所有需要完成的工作。在.chef目录中。

> mkdir bootstrap
> cd bootstrap && touch template.erb
> find /opt/chefdk/embedded/lib/ruby -type f -name chef-full.erb -exec cat {} \; > template.erb

找到该行的内容

cat > /etc/chef/client.rb <<'EOP
<%= config_content %>
EOP

并用

替换
cat > /etc/chef/client.rb <<'EOP'
<%= config_content %>
chef_license "accept"
EOP

接下来,运行命令knife bootstrap <host> --ssh-user '<username>' -i <my-identity>.pem --sudo --use-sudo-password --node-name <node-name> --boostrap-template "template" --run-list 'recipe[<cookbook-name>::default]'。照顾好了。

答案 1 :(得分:0)

您可以在下面的行中接受许可。

chef-client --chef-license accept  > /dev/null