client.rb
Файл client.rb определяет конфигурацию Chef Infra Client на узле и имеет следующие характеристики:
- Этот файл загружается каждый раз при запуске исполняемого файла chef-client.
- В системах Microsoft Windows по умолчанию этот файл находится по адресу
C:\chef\client.rb. Во всех других системах по умолчанию он находится по адресу/etc/chef/client.rb. - Используйте параметр
--configиз командной строки, чтобы переопределить расположение файла конфигурации по умолчанию. - Этот файл не создается по умолчанию
Параметры
В этом файле конфигурации есть следующие параметры:
add_formatterФорматировщик стороннего разработчика. (См. nyan-cat для примера форматировщика стороннего разработчика.) Для каждого форматировщика требуется своя запись.
authentication_protocol_version-
Устанавливает протокол аутентификации, используемый для связи с сервером Chef Infra Server. Например, укажите версию протокола 1.3, чтобы включить поддержку алгоритмов SHA-256:
knife[:authentication_protocol_version] = '1.3'Примечание
Протокол аутентификации 1.3 поддерживается только в версиях Chef Server 12.4.0 и выше. automatic_attribute_blacklistХэш, который помещает в чёрный список
automaticатрибуты, предотвращая сохранение атрибутов в чёрном списке.automatic_attribute_whitelistХэш, который помещает в белый список
automaticатрибуты, предотвращая сохранение атрибутов, не попавших в белый список.cache_pathДомашний каталог пользователя, который запускает Chef Infra Client как пользователя, не являющегося root.
checksum_pathРасположение, в котором хранятся файлы с контрольными суммами. Они используются для проверки отдельных файлов кулинарной книги, таких как рецепты. Сама контрольная сумма хранится в базе данных Chef Infra Server, а затем сравнивается с файлом в пути контрольной суммы, имя файла которого идентично контрольной сумме.
chef_guidИдентификатор узла (UUID), используемый Automate. Установка этого параметра позволяет указать идентификатор узла (UUID) и передавать его между экземплярами узла.
chef_licenseИспользуется для принятия лицензии Chef. Может быть установлено в значение
acceptилиaccept-no-persist, что сохраняет принятие лицензии на диск. Если передаётся в версии, где лицензия не требуется, эта конфигурационная опция не оказывает никакого влияния.chef_repo_pathПуть к chef-repo, содержащему кулинарные книги и другие файлы, такие как среды или пакеты данных, при запуске Chef Infra Client в локальном режиме.
chef_server_url-
URL сервера Chef Infra Server. Например:
https://localhost/organizations/ORG_NAME chef_zero.enabledВключить chef-zero. Этот параметр требует, чтобы
local_modeбыло установлено в значениеtrue. Значение по умолчанию:true, если используется локальный режим, иначеfalse.chef_zero.portПорт, на котором chef-zero должен слушать. Если указан диапазон, Chef Infra Client возьмёт первый доступный порт в этом диапазоне. Например,
10,20,30или10000-20000. Значение по умолчанию:8889-9999.clear_gem_sourcesГлобально устанавливает значение свойства
clear_sourcesпо умолчанию для ресурсовgem_packageиchef_gem. Значение по умолчанию:false.client_fork-
Chef Infra Client выполняется во вторичном процессе с выделенной оперативной памятью. По завершении выполнения Chef Infra Client оперативная память возвращается основному процессу. Этот параметр помогает гарантировать, что Chef Infra Client использует постоянный объём оперативной памяти со временем, так как основной процесс не выполняет рецепты. Этот параметр также помогает предотвратить утечки памяти, такие как те, которые могут быть вызваны кодом, содержащимся в плохо спроектированной кулинарной книге. Значение по умолчанию:
true. Установите значениеfalseдля отключения запуска Chef Infra Client в виртуальном узле.Примечание
До Chef Client 13.11.3 должно быть установлено значениеfalseдля получения стандартного возвращаемого кода, предлагаемогоexit_status true. Более поздние версии работают как ожидается без изменений в файле конфигурации. client_keyРасположение файла, содержащего ключ клиента. Значение по умолчанию:
/etc/chef/client.pem.client_registration_retriesКоличество попыток регистрации Chef Infra Client на сервере Chef Infra Server. Значение по умолчанию:
5.client_d_dirДиректория, содержащая дополнительные файлы конфигурации для Chef Infra Client.
cookbook_pathПодкаталог для кулинарных книг Chef Infra Client. Это значение может быть строкой или массивом расположений файловой системы, обрабатываемых в указанном порядке. Последняя кулинарная книга считается переопределяющей локальные изменения.
cookbook_sync_threadsКоличество вспомогательных потоков, доступных для параллельной синхронизации кулинарных книг. Увеличение этого значения может увеличить частоту ошибок шлюза со стороны сервера Chef Infra Server (ошибки 503 и 504). Уменьшение этого числа снижает частоту ошибок шлюза, если они присутствуют. Значение по умолчанию:
10.data_bag_decrypt_minimum_versionМинимально необходимая версия шифрования пакетов данных. Возможные значения:
1,2, и3. Рекомендуется использовать значение по умолчанию3для дополнительной защиты зашифрованных пакетов данных.data_bag_pathРасположение, из которого загружается пакет данных. Значение по умолчанию:
/var/chef/data_bags.data_collector.server_urlПолный URL API сервера сбора данных.
data_collector.tokenОбщий токен безопасности сервера сбора данных. При конфигурации токен будет передан в качестве HTTP-заголовка с именем
x-data-collector-token, который сервер может принять или отклонить.data_collector.modeРежим Chef Infra Client, в котором будет включён сборщик данных. Возможные значения:
:solo,:client, или:both. Значение:soloиспользуется для Chef Infra Client, работающего в режиме Chef Solo или в режиме унаследованного Chef Solo. Значение по умолчанию:both.data_collector.raise_on_failureПри включении Chef Infra Client возвращает ошибку, если не может успешно выполнить POST-запрос на сервер сбора данных. Значение по умолчанию:
false.default_attribute_blacklistХэш, который помещает в чёрный список
defaultатрибуты, предотвращая сохранение атрибутов в чёрном списке.default_attribute_whitelistХэш, который помещает в белый список
defaultатрибуты, предотвращая сохранение атрибутов, не попавших в белый список.diff_disabledПринуждает Chef Infra Client создавать разницу при внесении изменений в файл. Значение по умолчанию:
false.diff_filesize_thresholdМаксимальный размер (в байтах) файла, для которого Chef Infra Client может создать разницу. Значение по умолчанию:
10000000.diff_output_thresholdМаксимальный размер (в байтах) файла разницы, который может создать Chef Infra Client. Значение по умолчанию:
1000000.disable_event_loggerВключить или отключить отправку событий в журнал событий Microsoft Windows «Приложение». При
false, события отправляются в журнал событий Microsoft Windows «Приложение» в начале и конце выполнения Chef Infra Client, а также в случае сбоя Chef Infra Client. Установите значениеtrueдля отключения ведения журнала событий. Значение по умолчанию:false.enable_reportingПринуждает Chef Infra Client отправлять данные выполнения на сервер Automate.
enable_reporting_url_fatalsПринуждает Chef Infra Client завершиться с ошибкой, если данные выполнения не могут быть отправлены на сервер Automate (по любой причине).
enable_selinux_file_permission_fixupТолько для сред SELinux. Принуждает Chef Infra Client попытаться применить правильные разрешения файла к обновлённому файлу с помощью команды
restorecon. Установите это значение вfalse, чтобы предотвратить попытку Chef Infra Client выполнить это действие.encrypted_data_bag_secretПодкаталог, в котором находятся секреты зашифрованных пакетов данных.
enforce_path_sanityВключает проверку путей в ресурсах, которые выполняют внешние команды, чтобы гарантировать, что ожидаемые пути, такие как /sbin или /bin, добавляются в переменную PATH. Отключено по умолчанию.
environmentИмя среды Chef Infra.
environment_pathПуть к файлу среды. Значение по умолчанию:
/var/chef/environments.exit_statusПри установке в
:enabled, Chef Infra Client будет использовать стандартизованные коды возврата для статуса выполнения Chef Infra Client, а все нестандартные коды возврата будут преобразованы в1илиGENERIC_FAILURE. Этот параметр также можно установить в:disabled, чтобы использовать поведение кода возврата до Chef Infra Client 13. Значение по умолчанию:nil.file_atomic_update-
Применить атомарные обновления файлов ко всем ресурсам. Установите значение
trueдля глобальных атомарных обновлений файлов. Установите значениеfalseдля глобальных неатомарных обновлений файлов. (Используйте настройкуatomic_updateна уровне каждого ресурса, чтобы переопределить это значение.) Значение по умолчанию:true.Предупреждение
Изменение этого параметра наfalseможет привести к повреждению файлов, потере данных или нестабильности. Используйте свойствоatomic_updateдля ресурсов cookbook_file, file, remote_file и template для настройки этого поведения на уровне рецепта. file_backup_pathРасположение, в котором хранятся резервные файлы. Если это значение пустое, резервные файлы хранятся в каталоге целевого файла. Значение по умолчанию:
/var/chef/backup.file_cache_pathРасположение, в котором хранятся кулинарные книги (и другие временные данные) файлы во время синхронизации. Это значение также может использоваться в рецептах для загрузки файлов с помощью ресурса remote_file.
file_staging_uses_destdirСпособ выполнения подготовки файлов (через временные файлы). При
true, временные файлы создаются в каталоге, в котором будут находиться файлы. Приfalse, временные файлы создаются вENV['TMP']. Значение по умолчанию:true.fipsПозволяет OpenSSL принудительно применять FIPS-подтверждённую безопасность во время выполнения Chef Infra Client. Установите значение
trueдля включения FIPS-подтверждённой безопасности.force_formatterИспользование force_formatter заставляет chef по умолчанию использовать вывод форматировщика, когда STDOUT не является tty
force_loggerИспользование force_logger заставляет chef по умолчанию использовать вывод логгера, когда STDOUT является tty
ftp_proxyПрокси-сервер для FTP-соединений.
ftp_proxy_pass
Пароль для прокси-сервера при использовании FTP-соединения. Значение по умолчанию:
nil.ftp_proxy_userИмя пользователя для прокси-сервера при использовании FTP-соединения. Значение по умолчанию:
nil.groupГруппа, владеющая процессом. Требуется при запуске любого исполняемого файла как демона. Значение по умолчанию:
nil.gem_installer_bundler_options-
Дополнительные параметры для передачи bundler при установке метаданных для кулинарной книги. Значение по умолчанию:
nil. Например:gem_installer_bundler_options = [ "--local", "--clean" ]или
gem_installer_bundler_options = "--local" http_proxyПрокси-сервер для HTTP-соединений. Значение по умолчанию:
nil.http_proxy_passПароль для прокси-сервера при использовании HTTP-соединения. Значение по умолчанию:
nil.http_proxy_userИмя пользователя для прокси-сервера при использовании HTTP-соединения. Значение по умолчанию:
nil.http_retry_countКоличество попыток повторной отправки. Значение по умолчанию:
5.http_retry_delayЗадержка (в секундах) между попытками повторной отправки. Значение по умолчанию:
5.https_proxyПрокси-сервер для HTTPS-соединений. Значение по умолчанию:
nil.https_proxy_passПароль для прокси-сервера при использовании HTTPS-соединения. Значение по умолчанию:
nil.https_proxy_userИмя пользователя для прокси-сервера при использовании HTTPS-соединения. Значение по умолчанию:
nil.intervalЧастота (в секундах), с которой Chef Infra Client работает в режиме демона. Не рекомендуется использовать режим демона. Вместо этого следует полагаться на запланированное выполнение из системных планировщиков, таких как systemd таймеры, задачи cron или задачи планировщика Windows. Значение по умолчанию:
1800.json_attribsПуть к файлу, содержащему данные в формате JSON.
listenЗапуск chef-zero в режиме без сокета. Установите значение
false, чтобы отключить привязку порта и HTTP-запросы на localhost.local_key_generationГенерирует ли Chef Infra Server или Chef Infra Client пару открытый/закрытый ключ. Когда
true, Chef Infra Client генерирует пару ключей, а затем отправляет открытый ключ на Chef Infra Server. Значение по умолчанию:true.local_modeЗапуск Chef Infra Client в локальном режиме. Это позволяет всем командам, которые работают с Chef Infra Server, работать и с локальным chef-repo.
lockfileРасположение файла блокировки Chef Infra Client. Это значение обычно зависит от платформы, поэтому оно должно быть расположением, определенным
file_cache_path. Файл блокировки не должен находиться на NFS-монтировании. Значение по умолчанию: расположение, определенноеfile_cache_path.log_levelУровень ведения журнала, который будет храниться в файле журнала. Возможные уровни:
:auto(по умолчанию),:trace,:debug,:info,:warn,:error, или:fatal. Уровень:autoбудет использовать:warn, если терминал доступен, или:info, если терминал недоступен.log_locationРасположение файла журнала. Возможные значения:
/path/to/log_location,STDOUT,STDERR,:win_evt(журнал событий Windows) или:syslog(запись в службу syslog с указанием отправителя какchef-client). Приложение запишет источник какChef. Значение по умолчанию:STDOUT.minimal_ohaiЗапустить минимальный набор плагинов Ohai, предоставляющих данные, необходимые для выполнения встроенных ресурсов Chef Infra Client. Установка этого значения в true пропустит многие большие и длительные плагины, такие как
cloudилиpackages. Установка этого значения в true может нарушить работу кулинарных книг, предполагающих наличие всех данных Ohai.named_run_listКонкретный именованный список выполнения, определенный в примененном Policyfile узла, который следует использовать при запуске Chef Infra Client.
no_lazy_loadЗагрузка всех файлов кулинарной книги и шаблонов в начале выполнения Chef Infra Client. Значение по умолчанию:
true.no_proxyСписок URL-адресов (через запятую), для которых не требуется прокси. Значение по умолчанию:
nil.node_nameУникальный идентификатор узла. Это определяет, какая конфигурация должна быть применена и устанавливает
client_name, которое является именем, используемым при аутентификации на Chef Infra Server. По умолчанию Chef Infra Client будет использовать FQDN системы в качестве имени узла. В целом, Chef рекомендует оставить это значение пустым и позволить клиенту назначить FQDN узла в качествеnode_nameво время каждого запуска Chef Infra Client.node_pathМестоположение, в котором узлы хранятся во время выполнения Chef Infra Client в локальном режиме. Значение по умолчанию:
/var/chef/node.normal_attribute_blacklistХэш, который добавляет в черный список
normalатрибуты, предотвращая сохранение черных атрибутов.override_attribute_blacklistХэш, который добавляет в черный список
overrideатрибуты, предотвращая сохранение черных атрибутов.normal_attribute_whitelistХэш, который добавляет в белый список
normalатрибуты, предотвращая сохранение атрибутов, не включенных в белый список.override_attribute_whitelistХэш, который добавляет в белый список
overrideатрибуты, предотвращая сохранение атрибутов, не включенных в белый список.pid_fileРасположение, в котором сохраняется номер процесса (pid). Исполняемый файл, запущенный как демон, записывает pid в указанный файл. Значение по умолчанию:
/tmp/name-of-executable.pid.policy_groupИмя группы политики, которая существует на Chef Infra Server. Также необходимо указать
policy_name.policy_group_pathРасположение policy_groups на диске.
policy_nameИмя политики, как определено настройкой
nameв файле Policyfile.rb. Также необходимо указатьpolicy_group.policy_pathРасположение политик на диске.
recipe_urlURL для загрузки рецептов при запуске в локальном режиме.
rest_timeoutВремя (в секундах) ожидания истечения срока действия запроса HTTP REST. Значение по умолчанию:
300.role_pathРасположение файлов ролей. Значение по умолчанию:
/var/chef/roles.rubygems_urlРасположение для получения rubygems. Может быть установлено в строку или массив строк для URL-адресов источников rubygems. Это позволяет создавать внутреннее зеркало rubygems для «изолированных» сред. Значение по умолчанию:
https://www.rubygems.org. Еслиsourceуказан в одном изgem_packageилиchef_gemресурсов, он будет добавлен к указанным здесь значениям.run_lock_timeoutВремя (в секундах), которое необходимо подождать для удаления файла блокировки Chef Infra Client. Chef Infra Client не будет запущен, если файл блокировки присутствует. Если файл блокировки не удален до истечения этого времени, запущенный Chef Infra Client завершится. Значение по умолчанию: не установлено (неопределенно). Установите значение
0, чтобы заставить второй Chef Infra Client немедленно выйти.script_pathМассив путей для поиска скриптов knife exec, если они не находятся в текущем каталоге.
skip_gem_metadata_installationКогда
skip_gem_metadata_installationустановлено в true, установка кулинарной книги gem будет пропущена. Значение по умолчанию:falsesplayСлучайное число между нулем и
splay, которое добавляется кinterval. Использование splay помогает сбалансировать нагрузку на Chef Infra Server, гарантируя, что многочисленные запуски Chef Infra Client не происходят в один и тот же момент. Значение по умолчанию:nil.stream_execute_outputВсегда транслировать вывод ресурсов
execute, даже если свойствоlive_streamне установлено в true. Значение по умолчанию:falseshow_download_progressИспользование show_download_progress отобразит общий прогресс загрузки
remote_file. Значение по умолчанию:falsedownload_progress_intervalЕсли
show_download_progressустановлено в true, это интервал в секундах для записи прогресса загрузки. Значение по умолчанию:10ssl_ca_fileФайл, в котором сохраняется ключ OpenSSL. Chef Infra Client генерирует это значение автоматически, и большинству пользователей не нужно его изменять.
ssl_ca_pathПуть к расположению ключа OpenSSL. Chef Infra Client генерирует это значение автоматически, и большинству пользователей не нужно его изменять.
ssl_client_certСертификат OpenSSL X.509, используемый для взаимной проверки сертификатов. Это значение необходимо только при настройке взаимной проверки сертификатов на Chef Infra Server. Значение по умолчанию:
nil.ssl_client_keyКлюч OpenSSL X.509, используемый для взаимной проверки сертификатов. Это значение необходимо только при настройке взаимной проверки сертификатов на Chef Infra Server. Значение по умолчанию:
nil.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. - Используйте
trusted_certs_dir
Каталог, содержащий дополнительные сертификаты SSL для проверки подлинности. Любые сертификаты в этом каталоге будут добавлены к тому же набору сертификатов CA, который использует ruby. Используйте это для добавления самозаверяющих сертификатов для вашего сервера Chef Infra Server или локальных HTTP-файловых серверов. Значение по умолчанию:
trusted_certsкаталог в вашем каталоге конфигурации Chef.umaskМаска создания режима файла или umask. Значение по умолчанию:
0022.use_policyfileChef Infra Client автоматически проверяет конфигурацию, JSON-данные узла и сохранённый узел на сервере Chef Infra Server, чтобы определить, используются ли файлы Policyfile, и затем автоматически обновляет этот флаг. Значение по умолчанию:
false.userПользователь, владеющий процессом. Это необходимо при запуске любого исполняемого файла в качестве демона. Значение по умолчанию:
nil.validation_client_nameИмя ключа chef-validator, которое Chef Infra Client использует для доступа к серверу Chef Infra Server во время первоначального запуска Chef Infra Client. Используется только в устаревшем механизме валидации при загрузке.
validation_keyРасположение файла, содержащего ключ, используемый при регистрации Chef Infra Client на сервере Chef Infra Server. Ключ валидации подписывается с использованием ключа
validation_client_nameдля аутентификации. Значение по умолчанию:/etc/chef/validation.pem. Используется только в устаревшем механизме валидации при загрузке.verbose_loggingУстановите уровень ведения журнала. Доступные варианты:
true,nil, иfalse. При установке значенияfalse, уведомления о обработке отдельных ресурсов подавляются (и выводятся на уровень ведения журнала:info). Установка значенияfalseможет быть полезной, когда Chef Infra Client запускается как демон. Значение по умолчанию:nil.verify_api_certПроверка SSL-сертификата на сервере Chef Infra Server. Когда
true, Chef Infra Client всегда проверяет SSL-сертификат. Когдаfalse, Chef Infra Client использует значениеssl_verify_modeдля определения, требует ли SSL-сертификат проверки. Значение по умолчанию:false.whitelist-
Хэш, содержащий белый список разрешённых команд, используемых заданиями Chef Push Jobs. Например:
whitelist { 'job-name' => 'command', 'job-name' => 'command', 'chef-client' => 'chef-client' }Запись задания также может быть
'job-name' => {:lock => true}, которая проверит настройкуlockfileв файле client.rb перед запуском задания.
Автоматическая настройка прокси
Если http_proxy, https_proxy, ftp_proxy, или no_proxy установлены в файле client.rb, но не установлены в ENV, Chef Infra Client настроит переменную ENV на основе этих (и связанных) настроек. Например:
http_proxy 'http://proxy.example.org:8080'
http_proxy_user 'myself'
http_proxy_pass 'Password1'
Или альтернативный способ определения прокси (если предыдущий вариант не работает):
http_proxy 'http://myself:Password1@proxy.example.org:8080'
будет установлено значение:
ENV['http_proxy'] = 'http://myself:Password1@proxy.example.org:8080'
.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 существует несколько файлов конфигурации, убедитесь, что одно и то же значение настройки имеет одинаковое значение во всех файлах.
Настройки Ohai
Настройки конфигурации Ohai могут быть добавлены в файл client.rb.
ohai.directoryКаталог, в котором находятся плагины Ohai.
ohai.disabled_plugins-
Массив плагинов Ohai, которые следует отключить на узле. Список плагинов, включенных в Ohai, можно найти в исходном коде ohai/lib/ohai/plugins. Например, отключение одного плагина:
ohai.disabled_plugins = [ :MyPlugin ]или отключение нескольких плагинов:
ohai.disabled_plugins = [ :MyPlugin, :MyPlugin2, :MyPlugin3 ]При отключении плагина в файле журнала Chef Infra Client будут записи, похожие на:
[2014-06-13T23:49:12+00:00] DEBUG: Skipping disabled plugin MyPlugin ohai.hints_pathПуть к файлу, содержащему подсказки для Ohai.
ohai.log_levelУровень ведения журнала, который будет сохраняться в файле журнала.
ohai.log_locationРасположение файла журнала.
ohai.plugin_path-
Массив путей, в которых расположены плагины Ohai. Значение по умолчанию:
[<CHEF_GEM_PATH>/ohai-9.9.9/lib/ohai/plugins]. При добавлении пользовательских плагинов Ohai, пути должны быть добавлены в массив. Например, один плагин:ohai.plugin_path << '/etc/chef/ohai_plugins'и для нескольких плагинов:
ohai.plugin_path += [ '/etc/chef/ohai_plugins', '/path/to/other/plugins' ]
Примечание
Исполняемый файл Ohai игнорирует настройки в файле client.rb, когда Ohai запускается независимо от Chef Infra Client.
Пример
Пример файла client.rb, содержащий самый простой способ подключения к Hosted Chef
chef_server_url 'https://api.chef.io/organizations/<orgname>'
validation_client_name '<orgname>-validator'
validation_key '/etc/chef/validator.pem'
client_key '/etc/chef/client.pem'
© 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_client/