config.rb
Предупреждение
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
Примечание
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, можно добавить другие параметры, специфичные для подкоманд:
- Значение, переданное через командную строку
- Значение, содержащееся в файле
config.rb - Значение по умолчанию
Значение, переданное через командную строку, переопределяет значение в файле 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