Spec-Zone.ru › Chef 16

config.rb

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

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

Файл config.rb является заменой файла knife.rb, начиная с выпуска Chef Client 12.0. Файл config.rb имеет идентичные настройки и поведение по сравнению с файлом knife.rb. Chef Infra Client в первую очередь ищет наличие файла config.rb, а если он не найден, то ищет файл knife.rb.

Файл config.rb используется для указания конфигурационных деталей для knife.

Файл config.rb:

  • Загружается каждый раз при запуске исполняемого файла knife
  • По умолчанию Chef Infra Client ожидает найти этот файл по пути ~/.chef/config.rb; используйте опцию --config из командной строки, чтобы изменить этот путь
  • По умолчанию не создается
  • По умолчанию расположен по пути ~/.chef/config.rb (платформы UNIX и Linux) или c:\Users\username\.chef (платформа Microsoft Windows, используйте опцию --config из командной строки, чтобы изменить этот путь)
  • Переопределяет настройки по умолчанию, когда файл config.rb существует по пути по умолчанию или по пути, указанному опцией --config

Примечание

При работе под Microsoft Windows, файл config.rb расположен по пути %HOMEDRIVE%:%HOMEPATH%\.chef (например, c:\Users\<username>\.chef). Если этот путь необходимо использовать в скрипте, используйте %USERPROFILE%\chef-repo\.chef

Настройки

В этом конфигурационном файле есть следующие настройки:

bootstrap_template

Путь к файлу шаблона, который будет использоваться во время операции bootstrap.

chef_server_url

URL сервера Chef Infra. Например:

chef_server_url 'https://localhost/organizations/ORG_NAME'
chef_zero.enabled

Включить chef-zero. Эта настройка требует, чтобы local_mode было установлено в значение true. Значение по умолчанию: false. Например:

chef_zero.enabled true
chef_zero[:port]

Порт, на котором будет слушать chef-zero. Значение по умолчанию: 8889. Например:

chef_zero[:port] 8889
client_d_dir

Директория, содержащая дополнительные скрипты конфигурации для загрузки в Chef Infra Client.

client_key

Расположение файла с ключом клиента в виде абсолютного пути. Значение по умолчанию: /etc/chef/client.pem. Например:

client_key '/etc/chef/client.pem'
cookbook_copyright

Имя правообладателя авторских прав. Эта опция размещает уведомление об авторских правах, содержащее имя правообладателя, в каждом создаваемом файле. Если эта опция не указана, вместо неё используется имя «COMPANY_NAME»; её можно легко изменить позже.

cookbook_email

Электронный адрес лица, поддерживающего кулинарную книгу. Эта опция размещает электронный адрес в каждом создаваемом файле. Если не указано, используется имя электронной почты «YOUR_EMAIL»; его можно легко изменить позже.

cookbook_license

Тип лицензии, под которой распространяется кулинарная книга: apachev2, gplv2, gplv3, mit, или none (по умолчанию). Эта опция размещает соответствующее уведомление о лицензии в создаваемых файлах: Apache v2.0 (для apachev2), GPL v2 (для gplv2), GPL v3 (для gplv3), MIT (для mit), или license 'Proprietary - All Rights Reserved (для none). Учитывайте лицензии на файлы внутри кулинарной книги и соблюдайте любые ограничения, которые они описывают.

cookbook_path

Поддиректория Chef Infra Client для хранения кулинарных книг. Это значение может быть строкой или массивом системных расположений файлов, обработанных в указанном порядке. Последняя кулинарная книга считается переопределяющей локальные изменения. Например:

cookbook_path [
  '/var/chef/cookbooks',
  '/var/chef/site-cookbooks'
]
data_bag_encrypt_version

Минимальная требуемая версия шифрования мешков данных. Возможные значения: 1 или 2. Рекомендуется установить это значение в 2 для повышения безопасности. Например:

data_bag_encrypt_version 2
fips

Разрешает OpenSSL применять проверенные по стандарту FIPS меры безопасности при выполнении Chef Infra Client. Установите значение true для включения проверенных по стандарту FIPS мер безопасности.

Поддерживаются следующие операционные системы:

  • Red Hat Enterprise Linux
  • Oracle Enterprise Linux
  • CentOS
  • Windows

Поддержка FIPS была добавлена в версию Chef Server 12.13. Поддерживаются следующие операционные системы:

  • Red Hat Enterprise Linux
  • Oracle Enterprise Linux
  • CentOS
local_mode

Запустить Chef Infra Client в локальном режиме. Это позволяет всем командам, работающим с сервером Chef Infra, также работать с локальным chef-repo. Например:

local_mode true
node_name

Уникальный идентификатор узла. Это может быть имя пользователя с разрешением на аутентификацию на сервере Chef Infra, или имя машины, с которой запускается knife. Например:

node_name 'user_name'

или:

node_name 'machine_name'
no_proxy

Список URL-адресов, для которых прокси не требуется, разделённых запятыми. Значение по умолчанию: nil. Например:

no_proxy 'localhost, 10.0.1.35, *.example.com, *.dev.example.com'
ssh_agent_signing

Новое в 14.2 Используйте ssh-agent для аутентификации. При использовании этой опции укажите расположение открытого ключа в client_key. Значение по умолчанию: false. Убедитесь, что открытый ключ находится в формате PKCS#1. Вы можете преобразовать открытый ключ OpenSSH с помощью ssh-keygen. Например:

ssh-keygen -f key.pub -e -m pem > key.pem
ssh_timeout

Время ожидания подключения SSH (в секундах) перед сбросом.

ssl_verify_mode

Установите режим проверки для HTTPS-запросов.

  • Используйте :verify_none для отключения проверки сертификатов SSL.
  • Используйте :verify_peer для проверки всех сертификатов SSL, включая подключения к серверу Chef Infra, подключения к S3 и любые URL-адреса HTTPS-ресурса remote_file, используемые при работе Chef Infra Client. Это рекомендуемое значение.

В зависимости от конфигурации OpenSSL, может потребоваться указать ssl_ca_path. Значение по умолчанию: :verify_peer.

syntax_check_cache_path

Все файлы в кулинарной книге должны содержать корректный синтаксис Ruby. Используйте эту настройку для указания расположения, где knife кеширует информацию о файлах, которые были проверены на корректный синтаксис Ruby.

tmux_split

Разделить окно Tmux. Значение по умолчанию: false.

validation_client_name

Имя ключа chef-validator, используемого Chef Infra Client для доступа к серверу Chef Infra во время первоначального запуска Chef Infra Client. Например:

validation_client_name 'chef-validator'
validation_key

Расположение файла с ключом, используемым при регистрации Chef Infra Client на сервере Chef Infra. Ключ проверки подписывается с помощью validation_client_name для аутентификации. Значение по умолчанию: /etc/chef/validation.pem. Например:

validation_key '/etc/chef/validation.pem'
verify_api_cert

Проверить сертификат SSL на сервере Chef Infra. При значении true, Chef Infra Client всегда проверяет сертификат SSL. При значении false, Chef Infra Client использует значение ssl_verify_mode для определения необходимости проверки сертификата SSL. Значение по умолчанию: false.

versioned_cookbooks

Добавить версии кулинарных книг к кулинарным книгам. Установите false для скрытия версий кулинарных книг: cookbooks/apache. Установите true для отображения версий кулинарных книг: cookbooks/apache-1.0.0 и/или cookbooks/apache-1.0.1. Когда это значение true, knife download загружает ВСЕ версии кулинарных книг, что может быть полезно, если требуется полная резервная копия данных на сервере Chef Infra.

versioned_cookbooks true
config_log_level

Устанавливает значение по умолчанию для log_level в файле client.rb узла, который проходит bootstrap. Возможные значения: :debug, :info, :warn, :error и :fatal. Например:

config_log_level :debug
config_log_location

Устанавливает значение по умолчанию для log_location в файле client.rb узла, который проходит bootstrap. Возможные значения: /path/to/log_location, STDOUT, STDERR, :win_evt и :syslog. Например:

config_log_location "/path/to/log_location"   # Please make sure that the path exists

Настройки прокси

В некоторых ситуациях прокси, используемый сервером Chef Infra, требует аутентификации. В этом случае необходимо добавить три настройки в конфигурационный файл. Какие настройки добавить, зависит от используемого протокола доступа к серверу Chef Infra: HTTP или HTTPS.

Если сервер Chef Infra настроен на использование HTTP, добавьте следующие настройки:

http_proxy

Сервер прокси для HTTP-соединений. Значение по умолчанию: nil. Например:

http_proxy 'http://proxy.example.com:3128'
http_proxy_user

Имя пользователя сервера прокси при использовании HTTP-соединения. Значение по умолчанию: nil.

http_proxy_pass

Пароль сервера прокси при использовании HTTP-соединения. Значение по умолчанию: nil.

Если сервер Chef Infra настроен на использование HTTPS (например, размещённый сервер Chef Infra), добавьте следующие настройки:

https_proxy

Прокси-сервер для подключений HTTPS. (Хостинг Chef Infra Server использует подключение HTTPS.) Значение по умолчанию: nil.

https_proxy_user

Имя пользователя для прокси-сервера, когда прокси-сервер использует подключение HTTPS. Значение по умолчанию: nil.

https_proxy_pass

Пароль для прокси-сервера, когда прокси-сервер использует подключение HTTPS. Значение по умолчанию: nil.

Используйте следующее значение для указания URL-адресов, для которых прокси не требуется:

no_proxy

Список URL-адресов, для которых прокси не требуется, разделенных запятыми. Значение по умолчанию: nil.

.d Каталоги

Chef Infra Client поддерживает чтение нескольких файлов конфигурации, помещая их в каталог конфигурации .d. Например: /etc/chef/client.d. Все файлы, заканчивающиеся на .rb, в каталоге .d загружаются; другие файлы, не являющиеся .rb, игнорируются.

Каталоги .d могут находиться в любом месте, где присутствуют файлы client.rb, config.rb или solo.rb, например:

  • /etc/chef/client.d
  • /etc/chef/config.d
  • ~/chef/solo.d

(Поддержка каталога knife.d отсутствует; используйте config.d вместо него.)

Например, при использовании knife будут загружены следующие файлы конфигурации:

  • ~/.chef/config.rb
  • ~/.chef/config.d/company_settings.rb
  • ~/.chef/config.d/ec2_configuration.rb
  • ~/.chef/config.d/old_settings.rb.bak

Файл old_settings.rb.bak игнорируется, так как он не является файлом конфигурации. Файлы config.rb, company_settings.rb и ec2_configuration объединяются как один файл конфигурации.

Примечание

Если в каталоге .d существует несколько файлов конфигурации, убедитесь, что одно и то же значение каждого параметра одинаково во всех файлах.

Дополнительные настройки

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

  1. Значение, переданное через командную строку
  2. Значение, содержащееся в файле config.rb
  3. Значение по умолчанию

Значение, переданное через командную строку, перекроет значение в файле config.rb; значение в файле config.rb перекроет значение по умолчанию. Перед добавлением каких-либо настроек в файл config.rb:

  • Убедитесь в настройках, проверив документацию для подкоманд knife и/или плагинов knife
  • Убедитесь в целесообразности их добавления в вашей организации

Также обратите внимание, что:

  • Пользовательские плагины могут быть сконфигурированы для использования тех же настроек, что и основные подкоманды knife
  • Многие из этих настроек используются более чем одной подкомандой и/или плагином
  • Некоторые настройки включены только потому, что knife проверяет наличие значения в файле config.rb

Чтобы добавить настройки в файл config.rb используйте следующий синтаксис:

knife[:setting_name] = value

где value может потребовать кавычки (« ‘»), если это строковое значение. Например:

knife[:ssh_port] = 22
knife[:bootstrap_template] = 'ubuntu14.04-gems'
knife[:bootstrap_version] = ''
knife[:bootstrap_proxy] = ''

Некоторые из дополнительных config.rb настроек часто используются, например, файл шаблона, используемый в операции bootstrap. Частота использования любого параметра варьируется в зависимости от организации, поэтому, даже если следующие настройки часто добавляются в файл config.rb , они могут не являться подходящими для каждой организации:

knife[:bootstrap_proxy]

Прокси-сервер для узла, являющегося целью операции bootstrap.

knife[:bootstrap_template]

Путь к файлу шаблона, который будет использоваться во время операции bootstrap.

knife[:bootstrap_version]

Версия Chef Infra Client для установки.

knife[:editor]

Программа $EDITOR, используемая для всех интерактивных команд.

knife[:ssh_gateway]

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

knife[:ssh_port]

Порт SSH.

Другие связанные с SSH настройки, которые иногда полезно добавлять в файл config.rb:

knife[:forward_agent]

Включить перенаправление SSH-агента.

knife[:ssh_attribute]

Атрибут, используемый при открытии подключения SSH.

knife[:ssh_password]

Пароль SSH. Это можно использовать для прямой передачи пароля в командной строке. Если этот параметр не указан (и требуется пароль), knife запросит его.

knife[:ssh_user]

Имя пользователя SSH.

Некоторые организации предпочитают, чтобы все пакеты данных использовали один и тот же секрет и файл секрета, а не уникальный секрет и файл секрета для каждого пакета данных. Чтобы использовать один и тот же секрет и файл секрета для всех пакетов данных, добавьте следующее в config.rb:

knife[:secret]

Ключ шифрования, используемый для значений внутри элемента пакета данных.

knife[:secret_file]

Путь к файлу, содержащему ключ шифрования.

Некоторые настройки лучше оставить Ohai, который получит значение в начале выполнения Chef Infra Client:

knife[:server_name]

То же, что и node_name. Рекомендуется разрешить Ohai собирать это значение во время каждого запуска Chef Infra Client.

node_name

См. описание выше для этой настройки.

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

Проверьте полный список дополнительных настроек, которые можно добавить в файл config.rb . Многие из этих дополнительных настроек не следует добавлять в файл config.rb . Причины могут быть различны. Например, использование --yes в качестве значения по умолчанию в файле config.rb заставит knife всегда предполагать, что ответ на любой запрос «Да», что может привести к нежелательным результатам. Другие настройки, такие как --hide-by-mins (используется только с подкомандой knife status ) или --bare-directories (используется только с подкомандой knife list ), вероятно, не используются достаточно часто (и не в том же самом виде) чтобы оправдать их добавление в файл config.rb . В общем, если дополнительные настройки не перечислены в разделе основной config.rbтемы, добавляйте их только после тщательного обдумывания. Не используйте дополнительные настройки в производственной среде, пока производительность настройки не будет проверена в безопасной тестовой среде.

© 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/workstation/config_rb/

Spec-Zone.ru

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