Spec-Zone.ru › Chef 17

Принятие лицензии Шефа

[править на GitHub]

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

Принятие MLSA Chef

Существует три способа принять MLSA Chef:

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

Принятие EULA Chef

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

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

  • Chef Workstation >= 0.4, который также содержит:
    • Chef Infra Client
    • Chef InSpec
  • 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. Например, 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
Chef Automate >= 2.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 по обновлениям конфигурации https://www.habitat.sh/docs/using-habitat/#config-updates.

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

  • Test Kitchen
  • knife bootstrap в Chef Infra Client
  • chef-run в Chef Workstation
  • Packer
  • Terraform Chef Provider (Устаревший)
  • Vagrant

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

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 или сохраните принятие локально.

Test Kitchen: Привязка к 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.

knife bootstrap: Фиксация на 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, но это несовместимо со старыми версиями, поэтому не рекомендуется.

Packer: Фиксация на 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

Предупреждение

Terraform устарел Chef Provisioner в версии 0.13.4 и планирует удалить его в будущей версии. Terraform продолжает поддерживать Chef Provider.

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

provisioner "chef" {
  client_options = ["chef_license 'accept'"]
}
Terraform: Фиксация на Chef 14

В вашей конфигурации провайдера Terraform, добавьте:

provisioner "chef" {
  version = "14.12.3"
}

Terraform Habitat Provisioner

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

Terraform: Фиксация на 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

См. документацию Vagrant для получения подробностей. Аргумент --chef-license несовместим со старыми версиями Chef Infra Client без EULA. Вместо этого пользователи могут использовать специальный путь к конфигурации и указать локальный файл, который указывает конфигурацию chef_license. Переменная окружения в настоящее время не поддерживается.

Vagrant: Фиксация на 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