Принятие лицензионного соглашения Chef Infra Client для версии> = 14 - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь запустить узел с помощью chef с помощью команды knife bootstrap <host> --ssh-user '<username>' -i <my-identity>.pem --sudo --use-sudo-password --node-name <node-name> --run-list 'recipe[<cookbook-name>::default]'

Однако, это не удается, потому что я не могу принять лицензию

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 boostrap до того, как шеф-повар 14.0.Похоже, что они обновились до Chef 14.0, а новое обновление имеет обязательное требование для лицензионного соглашения.Как согласовать лицензию на клиентский компьютер с хост-компьютера?

1 Ответ

1 голос
/ 21 июня 2019

В основном, исходя из моих выводов, эта проблема может возникать в двух разных сценариях:

  1. Когда вы используете kitchen converge.Это можно решить очень легко, добавив фрагмент кода внутри kitchen.yml как

    provisioner:
      client_rb:
        chef_license: accept
    
  2. Когда вы запускаете knife bootstrap, это может быть немногоДополнительная работа.Эта страница объясняет все, что нужно сделать.Внутри каталога .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]'.Это позаботилось об этом.

...