Spec-Zone.ru › Chef 16

Принятие лицензии шеф-повара

[редактировать на GitHub]

На этой странице описано, как принять лицензию Chef для всех продуктов Chef Software. Для ознакомления с лицензией см. документацию по лицензии Chef. Существуют два типа лицензий: MLSA и EULA. MLSA применяется к клиентам, имеющим коммерческий договор с Chef Software, а EULA охватывает все остальные случаи.

Принятие MLSA Chef

Есть три способа принять MLSA Chef:

  1. При выполнении chef-<PRODUCT-NAME>-ctl reconfigure печатается Chef MLSA. Для ее принятия введите yes. Любой другой ввод, кроме yes, отклонит Chef MLSA, и процесс обновления завершится. Ввод yes добавит файл .license.accepted в файл /etc/chef/accepted_licenses/<PRODUCT-NAME>. Пока этот файл существует в этом каталоге, Chef MLSA принята, и процесс переконфигурации не запросит yes.
  2. Запустите команду chef-<PRODUCT-NAME>-ctl reconfigure с опцией --chef-license=accept. Это автоматически введет yes и пропустит печать Chef MLSA.
  3. Добавьте файл .license.accepted в каталог /var/opt/<PRODUCT-NAME>/. Содержимое этого файла не имеет значения. Пока этот файл существует в этом каталоге, Chef MLSA принята, и процесс переконфигурации не запросит yes.

Принятие EULA Chef

Продукты ниже разделены на две категории: рабочие станции и серверы. Показаны затронутые версии продуктов, для использования которых требуется принять EULA. Версии, предшествующие этому, не требуют принятия EULA. Дополнительную информацию о поддерживаемых версиях можно найти в документации Поддерживаемые версии.

Продукты для рабочих станций

  • Chef Workstation >= 0.4, который также содержит:
    • Chef Infra Client
    • Chef InSpec
    • Push Jobs Client
  • Chef Infra Client >= 15.0
  • Chef InSpec >= 4.0
  • Chef Habitat >= 0.80

Эти продукты обычно устанавливаются на рабочей станции пользователя. Для принятия лицензии для этих продуктов обычно используются два метода:

  1. --chef-license <value> аргумент, переданный в вызов команды.
  2. CHEF_LICENSE="<value>" в качестве переменной окружения.

<value> может быть указан как один из следующих:

  1. accept - Принимает лицензию и пытается сохранить маркерный файл локально. Сохранение этих маркерных файлов означает, что при последующих вызовах принятие лицензии не требуется повторно.
  2. accept-silent - Аналогично accept, за исключением того, что сообщения не отправляются в STDOUT.
  3. accept-no-persist - Аналогично accept-silent, за исключением того, что маркерный файл не сохраняется. При последующих вызовах потребуется повторное принятие лицензии.

Если аргумент командной строки или переменная окружения не установлены, эти продукты попытаются запросить принятие через интерактивный запрос. Если запрос не может быть отображен, продукт завершится с кодом выхода 172.

Если продукт пытается сохранить принятую лицензию и терпит неудачу, сообщение будет отправлено в STDOUT, но выполнение продукта успешно продолжится. Однако при последующем вызове потребуется повторное принятие лицензии.

Подробнее о сохранении маркерных файлов лицензии см. в Документации по сохранению файлов лицензии.

Аргумент командной строки --chef-license несовместим с более старыми версиями, не использующими EULA. Если вы управляете многоверсионной средой, рекомендуется использовать переменную окружения, так как она игнорируется более старыми версиями.

Продукты со специфическими функциями или отличиями от этого общего поведения описаны ниже.

Chef Workstation

Chef Workstation содержит несколько продуктов Chef Software. При вызове утилиты командной строки chef и принятии лицензии пользователи должны принять лицензию для всех встроенных продуктов. Одна и та же лицензия применяется ко всем продуктам, но каждое из них должно иметь собственное принятие лицензии. chef <command> --chef-license accept примет лицензию для Chef Workstation, Chef Infra Client, Chef InSpec и Push Jobs Client. Например, chef env --chef-license accept.

Chef Infra Client

В дополнение к вышеуказанным методам пользователи могут указать chef_license 'accept' в конфигурации Chef Infra Client и Chef Infra Server. На рабочей станции это можно указать в ~/.chef/config.rb или ~/.chef/knife.rb, а на узле – в /etc/chef/client.rb. Этот метод принятия лицензии совместим с версиями Chef Infra Client, не использующими EULA.

Habitat

Для принятия лицензии Chef Habitat обычно используются два метода:

  1. Пользователи могут выполнить hab license accept в командной строке.
  2. В качестве альтернативы пользователи могут установить HAB_LICENSE="<value>" в качестве переменной среды.

<value> может быть указан как один из следующих:

  1. accept - Принимает лицензию и сохраняет маркерный файл локально. При последующих вызовах принятие лицензии не требуется.
  2. accept-no-persist - Принимает лицензию без сохранения маркерного файла. При последующих вызовах потребуется повторное принятие лицензии.

Если лицензия не будет принята ни одним из этих методов, Habitat запросит принятие через интерактивный запрос.

Кроме того, для принятия лицензии в CI или других автоматизированных системах пользователь может создать пустой файл в файловой системе в /hab/accepted-licenses/habitat (если ваши команды hab выполняются от имени root) или в $HOME/.hab/accepted-licenses/habitat (если ваши команды hab выполняются от имени пользователя, отличного от root). В ситуациях, когда команды hab выполняются от имени нескольких пользователей, рекомендуется создать оба файла.

Ошибки

Если запрос лицензии Chef Habitat не может быть отображен, то продукт завершается с кодом выхода 172. Если Chef Habitat не может сохранить принятую лицензию, он отправит сообщение в STDOUT, но выполнение продукта успешно продолжится. Однако при последующем вызове пользователю потребуется повторно принять лицензию.

Продукты Chef как пакеты Habitat

Продукты Chef Software также распространяются в виде пакетов Habitat, таких как Chef Infra Client, Chef InSpec и т. д. При установке продуктов Chef в качестве пакетов Habitat продукты запрашивают принятие лицензии при ее использовании. Независимо от того, установлены ли продукты как системные пакеты или как пакеты Habitat, пользователи принимают лицензии таким же способом, как описано выше.

Продукты для серверов

Некоторые продукты Chef, распространяемые в виде пакетов Habitat, содержат серверы. В этих случаях Habitat запускает серверные продукты в качестве диспетчера. См. следующие разделы для получения информации о том, как принять лицензию для этих продуктов при их распространении в виде пакетов Habitat.

Продукт Версия
Chef Infra Server >= 13.0, который также содержит Push Jobs Server
Chef Automate >= 2.0
Push Jobs Server >= 3.0
Supermarket >= 4.0

Серверные продукты обычно устанавливаются и управляются каким-либо диспетчером процессов. Продукты сервера Chef Software не позволяют интерактивного принятия лицензии, потому что диспетчеры процессов не легко позволяют интерактивность. Вместо этого лицензия принимается во время выполнения команды reconfigure или команды upgrade для команды Omnibus ctl. Например:

  • chef-server-ctl reconfigure --chef-license=accept
  • CHEF_LICENSE="accept-no-persist" supermarket-ctl reconfigure

Кроме того, лицензию Chef можно принять через файл конфигурации omnibus. Укажите chef_license 'accept' в конфигурации chef-server.rb или supermarket.rb.

Chef Automate

Automate имеет собственный инструмент переконфигурации automate-ctl. Этот инструмент помогает пользователям в установке и настройке Automate. Лицензия Chef принимается после этого в браузере. Следуйте инструкциям в продукте.

Chef Infra Server

При установке как системного пакета пользователи принимают лицензию с помощью команды ctl. Например, chef-server-ctl reconfigure --chef-license=accept. Принятие также можно настроить в файле конфигурации chef-server.rb как chef_license "accept".

Chef Infra Server также распространяется как пакет Habitat и запускается с помощью диспетчера Habitat. В этом режиме пользователи принимают лицензию, установив правильные значения конфигурации Habitat. Ключ – chef_license.acceptance.

Например: против диспетчера, работающего с Chef Infra Server, выполните echo "chef_license.acceptance = accept" | hab config apply server.default 100. Для получения дополнительной информации о применении этой конфигурации к группе служб см. Документацию Habitat по обновлениям конфигурации.

Продукты удаленного управления

  • Test Kitchen
  • knife bootstrap в Chef Infra Client
  • chef-run в Chef Workstation
  • Packer
  • Terraform Chef Provisioner
  • Terraform Habitat Provisioner
  • Vagrant

Эти продукты устанавливают или управляют Chef на удаленном экземпляре. Если пользователь принял соответствующую локальную лицензию продукта, она будет автоматически перенесена на удаленный экземпляр. Например, если пользователь принял лицензию Chef Infra Client локально и сконвергировал экземпляр Test Kitchen с помощником Chef, он пройдет успешно, скопировав принятие на удаленный экземпляр. Мы стремимся к поддержке этого поведения, чтобы рабочие станции пользователей не были затронуты, но любые различия от этого поведения описаны ниже.

Test Kitchen

Test Kitchen не принадлежит и не регулируется лицензией Chef, но установка Chef Infra Client на тестовый экземпляр регулируется EULA. Без принятия лицензии конвертация на тестовом экземпляре завершится неудачей.

Помощник Chef в Test Kitchen >= 2.3 был обновлен для упрощения принятия этой лицензии от имени тестового экземпляра. Пользователи могут установить переменную среды CHEF_LICENSE или добавить chef_license: accept в конфигурацию помощника в файле kitchen.yml. Указание accept попытается сохранить принятие лицензии локально. Если обнаружен локальный маркерный файл лицензии, никакой конфигурации не требуется; принятие автоматически переносится на тестовый экземпляр.

Чтобы отключить это сохранение, укажите accept-no-persist на каждом тестовом экземпляре при конвертации.

kitchen-inspec использует Chef InSpec как библиотеку и не регулируется EULA при установке как gem, но регулируется EULA при упаковке в составе установки Chef Workstation. Примите лицензию аналогично лицензии Chef Infra Client – укажите переменную среды CHEF_LICENSE, укажите конфигурацию chef_license в разделе verifier в kitchen.yml или сохраните принятие локально.

Фиксация на Chef 14

Вы можете зафиксировать конкретную версию chef в файле kitchen.yml:

provisioner:
  name: chef_zero
  product_name: chef
  product_version: 14.12.3

knife bootstrap

Использование knife не требует принятия EULA. В случае с экземпляром Chef Infra Client требуется принятие EULA. Использование knife bootstrap для управления экземпляром Chef Infra Client запросит у пользователя локальное принятие лицензии перед началом бутстрапа удалённого экземпляра. Без этого knife bootstrap завершится неудачно.

В большинстве случаев использования через Chef Workstation эта лицензия уже будет принята и будет передаваться прозрачно. Но если пользователь установит Chef Workstation и первой командой, которую он выполнит, будет knife bootstrap, будет выполнен тот же процесс принятия лицензии, что и для продукта Chef Infra Client.

knife bootstrap в Chef Client 14

Команда knife bootstrap в Chef Client 14 не может принять EULA Chef Infra Client 15 на удалённых узлах, если вы не используете специальную шаблон и не добавите chef_license “accept” в файл client.rb. Это относится к рабочим станциям, на которых установлен Chef Infra Client <= 14.x, ChefDK <= 3.x или Chef Workstation <= 0.3.

Фиксация на Chef 14

Укажите следующий аргумент:

knife bootstrap --bootstrap-version 14.12.3

chef-run

chef-run в Chef Workstation >= 0.3 было обновлено для добавления поддержки локального принятия лицензии при удалённом запуске Chef Infra Client 15. Начиная с Chef Workstation <= 0.4, нет возможности управлять версией Chef Infra Client, установленной на удалённом узле. По умолчанию используется последняя стабильная доступная версия.

Для принятия лицензии выполните одну из трёх задач. Либо передайте --chef-license флаг командной строки, либо установите CHEF_LICENSE переменную окружения, либо добавьте следующее в ваш файл ~/.chef-workstation/config.toml:

[chef]
chef_license = "accept"

Packer

Используйте пользовательский шаблон конфигурации Chef. В вашей конфигурации провайдеров включите:

{
  "type":            "chef-client",
  "config_template": "path/to/client.rb"
}

В path/to/client.rb, включите:

chef_license 'accept'

Вы также можете добавить его в execute_command, но это не обратная совместимость, поэтому не рекомендуется.

Фиксация на Chef 14

В вашей конфигурации провайдеров Packer включите:

{
  "type":            "chef-client",
  "install_command": "curl -L https://omnitruck.chef.io/install.sh | sudo bash -s -- -v 14.12.9"
}

Terraform Chef Provisioner

Лицензию можно принять через конфигурационный файл Chef Infra Client, который задаётся client_options конфигурации провайдера Terraform:

provisioner "chef" {
  client_options = ["chef_license 'accept'"]
}

Фиксация на Chef 14

В вашей конфигурации провайдера Terraform включите:

provisioner "chef" {
  version = "14.12.3"
}

Terraform Habitat Provisioner

По умолчанию этот провайдер устанавливает последнюю версию Habitat. Документация по этому провайдеру будет обновлена в ближайшем будущем, после обновления провайдера с возможностью принятия лицензии. На данный момент провайдер можно зафиксировать на предыдущую версию Habitat, как показано ниже.

Фиксация на Chef Habitat 0.79

В вашей конфигурации провайдера Terraform включите:

provisioner "habitat" {
  version = "0.79.1"
}

Vagrant

Это принятие лицензии может быть выполнено через API аргументов:

config.vm.provision 'chef_zero' do |chef|
  chef.arguments = '--chef-license accept'
end

См. https://www.vagrantup.com/docs/provisioning/chef_common.html#arguments для получения подробностей. Аргумент --chef-license не обратной совместимости с версиями Chef Infra Client без EULA. Поэтому вместо этого пользователи могут использовать путь к пользовательской конфигурации и указать локальный файл, который задаёт chef_license конфигурацию. Переменная окружения в настоящее время не поддерживается.

Фиксация на Chef 14

Эта фиксация версии может быть выполнена через API версии. В вашей конфигурации провайдера Chef:

config.vm.provision 'chef_zero' do |chef|
  chef.version = '14.12.3'
end

Поддержка до обновления

Компания Chef Software стремится сделать обновление с версии без EULA до версии с EULA максимально простым. Для некоторых продуктов (Chef Client 14.12.9, Chef InSpec 3.9.3) мы добавили обратную совместимость с командой --chef-license, которая выполняет бездействие. Это позволяет клиентам начать указание этого аргумента любым способом, которым они управляют этими продуктами перед обновлением.

В качестве альтернативы, пользователи могут задать CHEF_LICENSE переменную окружения при вызове любого из продуктов EULA для принятия лицензии. Эта переменная окружения игнорируется продуктами без EULA и, следовательно, обратной совместима со старыми версиями.

chef-client кулинарная книга

Для пользователей, которые управляют установкой Chef Infra Client с помощью chef-client кулинарной книги, мы добавили новый атрибут, который можно указать. Укажите атрибут узла node['chef_client']['chef_license'] = 'accept' при запуске кулинарной книги, чтобы применить принятие лицензии способом, обратным к прежнему.

Эта возможность позволяет пользователям установить этот атрибут для установки Chef Client 14, обновить её до Chef Infra Client 15 и продолжить правильную работу продукта.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/chef_license_accept/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API