Spec-Zone.ru › Chef 18

config.rb

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

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

Файл config.rb — это замена файла knife.rb. Файл config.rb имеет одинаковые настройки и поведение, что и файл knife.rb. Клиент Chef Infra сначала ищет наличие файла 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-адреса HTTPS-ресурса remote_file, используемые в ходе выполнения 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 узла, который загружается. Возможные значения: :debug, :info, :warn, :error и :fatal. Например:
config_log_level :debug
config_log_location
Устанавливает значение по умолчанию для log_location в файле client.rb узла, который загружается. Возможные значения: /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.

Настройки хранилища данных

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

knife[:secret]
Ключ шифрования, используемый для значений, содержащихся в элементе хранилища данных.
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/

Spec-Zone.ru

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