Spec-Zone.ru › Chef 18

config.rb

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

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

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

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

Файл config.rb:

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

Примечание

При работе с Microsoft Windows файл config.rb расположен по адресу %HOMEDRIVE%:%HOMEPATH%\.chef (например, c:\Users\<username>\.chef).

Настройки

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

bootstrap_template
Путь к файлу шаблона, который будет использоваться во время операции bootstrap.
chef_server_url
URL сервера Chef Infra Server. Например:
chef_server_url 'https://localhost/organizations/ORG_NAME'

Примечание

Если необходимо внести изменения в какие-либо глобальные конечные точки, такие как пользователь или ключи пользователя, используйте knife exec с флагом --server-url для установки значения chef_server_url на https://localhost/.
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. Если все машины в организации работают с Chef Client 11.6 (или выше), рекомендуется установить это значение в 2. Например:
data_bag_encrypt_version 2
fips
Позволяет OpenSSL принудительно использовать FIPS-валидированную безопасность во время выполнения Chef Infra Client. Установите в true для включения FIPS-валидированной безопасности.

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

  • Red Hat Enterprise Linux
  • Oracle Enterprise Linux
  • CentOS
  • Windows
local_mode
Запустить Chef Infra Client в локальном режиме. Это позволяет всем командам, работающим с Chef Infra Server, также работать с локальным chef-repo. Например:
local_mode true
node_name

Имя узла. Это может быть имя пользователя с разрешением на аутентификацию на сервере Chef Infra Server, или это может быть имя машины, с которой запускается 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 Server, подключения к S3 и любые URL-адреса ресурсов remote_file HTTPS, используемые при выполнении Chef Infra Client. Это рекомендуемое значение.

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

tmux_split

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

validation_client_name

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

validation_client_name 'chef-validator'
validation_key

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

validation_key '/etc/chef/validation.pem'
verify_api_cert
Проверить сертификат SSL на сервере Chef Infra Server. Когда 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 Server. Например:
versioned_cookbooks true
config_log_level
Устанавливает значение по умолчанию log_level в файле client.rb узла, который проходит bootstrapping. Возможные значения: :debug, :info, :warn, :error и :fatal. Например:
config_log_level :debug
config_log_location
Устанавливает значение по умолчанию log_location в файле client.rb узла, который проходит bootstrapping. Возможные значения: /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 Server, требует аутентификации. В этой ситуации необходимо добавить три настройки в файл конфигурации. Какие настройки добавлять, зависит от протокола доступа к серверу Chef Infra Server: HTTP или HTTPS.

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

http_proxy
Прокси-сервер для HTTP-соединений. Значение по умолчанию: nil. Например:
http_proxy 'http://proxy.example.com:3128'
http_proxy_user
Имя пользователя для прокси-сервера, когда прокси-сервер использует HTTP-соединение. Значение по умолчанию: nil.
http_proxy_pass
Пароль для прокси-сервера, когда прокси-сервер использует HTTP-соединение. Значение по умолчанию: nil.

Настройки прокси HTTPS (например, размещённый сервер Chef Infra Server)

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 поддерживает чтение нескольких файлов конфигурации, помещая их в каталог конфигурации .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

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

knife[:forward_agent]
Включить пересылку агента SSH.
knife[:ssh_attribute]
Атрибут, используемый при открытии подключения SSH.
knife[:ssh_password]
Пароль SSH. Это можно использовать для передачи пароля непосредственно в командной строке. Если этот параметр не указан (и требуется пароль), knife запросит его.
knife[:ssh_user]
Имя пользователя SSH.

Параметры Data Bag

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

knife[:secret]
Ключ шифрования, используемый для значений, содержащихся в элементе data bag.
knife[:secret_file]
Путь к файлу, содержащему ключ шифрования.

Параметры Ohai (не рекомендуется)

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

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

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

Проверьте полный список дополнительных параметров, которые можно добавить в файл config.rb. Многие из этих дополнительных параметров не следует добавлять в файл config.rb. Причины могут быть различны. Например, использование --yes в качестве значения по умолчанию в файле config.rb заставляет knife всегда предполагать, что ответ на любой запрос — «Y», что может привести к нежелательным результатам. Другие параметры, такие как --hide-healthy (используется только с подкомандой 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/config_rb.html

Spec-Zone.ru

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