Spec-Zone.ru › Chef 16

Ресурс chef_client_config

Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл chef_client_config.rb и отправьте запрос на вытягивание в репозиторий Chef.

Страница справочника ресурсов


Используйте ресурс chef_client_config для создания файла client.rb в каталоге конфигурации Chef Infra Client. Дополнительные сведения об имеющихся параметрах в файле конфигурации client.rb см. в документации client.rb.

Новое в Chef Infra Client 16.6.

Синтаксис


Полный синтаксис всех свойств, доступных ресурсу chef_client_config:

chef_client_config 'name' do
  additional_config              String
  chef_license                   String
  chef_server_url                String
  config_directory               String
  event_loggers                  Array # default value: []
  exception_handlers             Array # default value: []
  file_backup_path               String
  file_cache_path                String
  file_staging_uses_destdir      String
  formatters                     Array # default value: []
  ftp_proxy                      String
  group                          String
  http_proxy                     String
  https_proxy                    String
  log_level                      Symbol
  log_location                   String, Symbol
  minimal_ohai                   true, false
  named_run_list                 String
  no_proxy                       String, Array # default value: []
  node_name                      String
  ohai_disabled_plugins          Array # default value: []
  ohai_optional_plugins          Array # default value: []
  pid_file                       String
  policy_group                   String
  policy_name                    String
  report_handlers                Array # default value: []
  ssl_verify_mode                Symbol, String
  start_handlers                 Array # default value: []
  user                           String
  action                         Symbol # defaults to :create if not specified
end

где:

  • chef_client_config — ресурс.
  • name — имя, заданное для блока ресурса.
  • action определяет, какие действия Chef Infra Client выполнит для перевода узла в нужное состояние.
  • additional_config, chef_license, chef_server_url, config_directory, event_loggers, exception_handlers, file_backup_path, file_cache_path, file_staging_uses_destdir, formatters, ftp_proxy, group, http_proxy, https_proxy, log_level, log_location, minimal_ohai, named_run_list, no_proxy, node_name, ohai_disabled_plugins, ohai_optional_plugins, pid_file, policy_group, policy_name, report_handlers, ssl_verify_mode, start_handlers, и user — доступные для этого ресурса свойства.

Действия


Ресурс chef_client_config имеет следующие действия:

:create
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remove

Свойства


Ресурс chef_client_config имеет следующие свойства:

additional_config
Тип в Ruby: Строка

Дополнительный текст для добавления в конец конфигурации client.rb. Это может быть использовано для выполнения пользовательского Ruby или добавления менее распространенных параметров конфигурации

chef_license
Тип в Ruby: СтрокаДопустимые значения: "accept", "accept-no-persist", "accept-silent"

Принять Лицензионное соглашение Chef

chef_server_url
Тип в Ruby: Строка | REQUIRED

URL сервера Chef Infra.

config_directory
Тип в Ruby: Строка | Значение по умолчанию: `/etc/chef/` on *nix-like systems and `C:\chef\` on Windows

Каталог для сохранения client.rb.

event_loggers
Тип в Ruby: Массив | Значение по умолчанию: []
exception_handlers
Тип в Ruby: Массив | Значение по умолчанию: []

Массив словарей, содержащих класс обработчика исключений и аргументы, которые необходимо передать этому классу при инициализации. Словарь должен содержать ключи class и argument, где class — строка, а argument — массив строковых значений в кавычках. Например: [{'class' => 'MyHandler', %w('"argument1"', '"argument2"')}]

file_backup_path
Тип в Ruby: Строка

Расположение для сохранения резервных файлов. Если это значение пустое, резервные файлы сохраняются в каталоге целевого файла.

file_cache_path
Тип в Ruby: Строка

Расположение для сохранения кулинарных книг (и других временных данных) при синхронизации. Это значение также может быть использовано в рецептах для скачивания файлов с помощью ресурса remote_file.

file_staging_uses_destdir
Тип в Ruby: Строка

Как выполняется размещение файлов (через временные файлы). При значении true, временные файлы создаются в каталоге, где будут располагаться файлы. При значении false, временные файлы создаются в ENV['TMP']

formatters
Тип в Ruby: Массив | Значение по умолчанию: []
ftp_proxy
Тип в Ruby: Строка

Прокси-сервер для FTP-соединений.

group
Тип в Ruby: Строка

Группа, которой должен принадлежать файл client.rb и каталог конфигурации, если он должен быть создан. Примечание: каталог конфигурации не будет создан, если он уже существует, что позволяет вам дополнительно контролировать настройку этого каталога вне этого ресурса.

http_proxy
Тип в Ruby: Строка

Прокси-сервер для HTTP-соединений.

https_proxy
Тип в Ruby: Строка

Прокси-сервер для HTTPS-соединений.

log_level
Тип в Ruby: СимволДопустимые значения: :auto, :debug, :fatal, :info, :trace, :warn

Уровень ведения журнала, выполняемый Chef Infra Client.

log_location
Тип в Ruby: Строка, Символ

Расположение для сохранения журналов. Это может быть путь к файлу журнала на диске :syslog, чтобы вести журнал в Syslog, :win_evt чтобы вести журнал в журнал событий Windows, или 'STDERR'/'STDOUT' для ведения журнала в текстовые потоки *nix.

minimal_ohai
Тип в Ruby: true, false

Выполнение минимального набора плагинов Ohai, предоставляющих данные, необходимые для выполнения встроенных ресурсов Chef Infra Client. Установка этого значения в true пропустит многие большие и ресурсоёмкие наборы данных, такие как cloud или packages. Установка этого значения в true может нарушить работу кулинарных книг, предполагающих, что все данные Ohai будут присутствовать.

named_run_list
Тип в Ruby: Строка

Конкретный именованный список задач, определенный в применённом Policyfile узла, который следует использовать при запуске Chef Infra Client.

no_proxy
Тип в Ruby: Строка, Массив | Значение по умолчанию: []

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

node_name
Тип в Ruby: Строка | Значение по умолчанию: The `node.name` value reported by Chef Infra Client.

Имя узла. Эта конфигурация задаёт значение node.name, используемое в кулинарных книгах, и значение client_name, используемое при аутентификации на сервере Chef Infra, чтобы определить, какую конфигурацию применять. Примечание: по умолчанию эта конфигурация использует значение node.name, которое устанавливается во время загрузки. Задание этого значения в конфигурации client.rb исключает логику на сервере Chef Infra, которая выполняет поиск DNS и может завершиться неудачей в случае сбоя DNS. Чтобы пропустить это значение по умолчанию и вместо этого использовать встроенную логику сервера Chef Infra, установите это свойство в nil

ohai_disabled_plugins
Тип в Ruby: Массив | Значение по умолчанию: []

Плагины Ohai, которые следует отключить, чтобы ускорить запуск Chef Infra Client и уменьшить размер данных узла, отправляемых в Chef Infra Client.

ohai_optional_plugins
Тип в Ruby: Массив | Значение по умолчанию: []

Дополнительные плагины Ohai, которые следует включить для получения дополнительных данных Ohai, используемых в кулинарных книгах.

pid_file
Тип в Ruby: Строка

Расположение для сохранения номера процесса (pid). Исполняемый файл, запущенный как демон, записывает pid в указанный файл.

policy_group
Тип в Ruby: Строка

Имя policy group, существующего на сервере Chef Infra. policy_name также должно быть указано при установке этого свойства.

policy_name
Тип в Ruby: Строка

Имя политики, определённой параметром name в файле Policyfile.rb. policy_group необходимо при установке этого свойства.

report_handlers
Тип в Ruby: Массив | Значение по умолчанию: []

Массив словарей, содержащих класс обработчика отчётов и аргументы, которые необходимо передать этому классу при инициализации. Словарь должен содержать ключи class и argument, где class — строка, а argument — массив строковых значений в кавычках. Например: [{'class' => 'MyHandler', %w('"argument1"', '"argument2"')}]

ssl_verify_mode
Тип в Ruby: Символ, СтрокаДопустимые значения: :verify_none, :verify_peer

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

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

Массив словарей, содержащих класс обработчика отчётов и аргументы, которые необходимо передать этому классу при инициализации. Словарь должен содержать ключи class и argument, где class — строка, а argument — массив строковых значений в кавычках. Например: [{'class' => 'MyHandler', %w('"argument1"', '"argument2"')}]

user
Тип в Ruby: Строка

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


Общие функциональные возможности ресурсов


Ресурсы Chef включают общие свойства, уведомления и защитные механизмы ресурсов.

Общие свойства

Следующие свойства общие для всех ресурсов:

compile_time

Тип Ruby: true, false | Значение по умолчанию: false

Управляет фазой, в которой ресурс выполняется на узле. Установите в true, чтобы запустить его во время создания коллекции ресурсов (compile phase). Установите в false, чтобы запустить его во время конфигурирования узла клиентом Chef Infra Client (converge phase).

ignore_failure

Тип Ruby: true, false, :quiet | Значение по умолчанию: false

Продолжать выполнение рецепта, если ресурс завершается неудачно по какой-либо причине. :quiet не будет отображать полный стек вызовов, и рецепт продолжит выполнение, если ресурс завершится неудачно.

retries

Тип Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехватить исключения и повторить ресурс.

retry_delay

Тип Ruby: Целое число | Значение по умолчанию: 2

Задержка повтора (в секундах).

sensitive

Тип Ruby: true, false | Значение по умолчанию: false

Обеспечьте, чтобы конфиденциальные данные ресурсов не регистрировались клиентом Chef InfraClient.

Уведомления

notifies

Тип Ruby: Символ, 'Chef::Resource[String]'

Ресурс может уведомить другой ресурс о действии при изменении его состояния. Укажите 'resource[name]', :action ресурса, который он должен выполнить, а затем :timer для этого действия. Ресурс может уведомлять несколько ресурсов; используйте оператор notifies для каждого уведомляемого ресурса.

Если указанный ресурс не существует, возникает ошибка. В отличие от этого, subscribes не завершится ошибкой, если исходный ресурс не найден.

Таймер определяет момент выполнения уведомления во время работы клиента Chef Infra Client. Доступны следующие таймеры:

:before

Указывает, что действие над уведомленным ресурсом должно быть выполнено перед обработкой блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть поставлено в очередь и затем выполнено в конце работы клиента Chef Infra Client.

:immediate, :immediately

Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.

Синтаксис для notifies:

notifies :action, 'resource[name]', :timer
subscribes

Тип Ruby: Символ, 'Chef::Resource[String]'

Ресурс может прослушивать другой ресурс и выполнять действие, если состояние прослушиваемого ресурса изменится. Укажите 'resource[name]', :action и :timer.

Обратите внимание, что subscribes не применяет указанное действие к ресурсу, который он прослушивает — например:

file '/etc/nginx/ssl/example.crt' do
  mode '0600'
  owner 'root'
end

service 'nginx' do
  subscribes :reload, 'file[/etc/nginx/ssl/example.crt]', :immediately
end

В этом случае свойство subscribes перезагружает сервис nginx, когда файл его сертификата, расположенный в /etc/nginx/ssl/example.crt, обновляется. subscribes не вносит никаких изменений в сам файл сертификата, а лишь прослушивает изменения в файле и выполняет действие :reload для своего ресурса (в данном примере nginx) при обнаружении изменений.

Если другой ресурс не существует, подписка не вызовет ошибку. В отличие от более жесткой семантики notifies, которая вызовет ошибку, если другой ресурс не существует.

Таймер определяет момент выполнения уведомления во время работы клиента Chef Infra Client. Доступны следующие таймеры:

:before

Указывает, что действие над уведомленным ресурсом должно быть выполнено перед обработкой блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть поставлено в очередь и затем выполнено в конце работы клиента Chef Infra Client.

:immediate, :immediately

Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.

Синтаксис для subscribes:

subscribes :action, 'resource[name]', :timer

Защиты

Свойство защиты может использоваться для оценки состояния узла во время фазы выполнения клиента Chef Infra Client. На основе результатов этой оценки свойство защиты затем сообщает клиенту Chef Infra Client, следует ли продолжить выполнение ресурса. Свойство защиты принимает либо строковое значение, либо значение Ruby-блока:

  • Строка выполняется как команда оболочки. Если команда возвращает 0, защита применяется. Если команда возвращает любое другое значение, то свойство защиты не применяется. Строковые защиты в powershell_script выполняют команды Windows PowerShell и могут возвращать true в дополнение к 0.
  • Блок выполняется как код Ruby, который должен вернуть либо true, либо false. Если блок возвращает true, свойство защиты применяется. Если блок возвращает false, свойство защиты не применяется.

Свойство защиты полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверить желаемое состояние во время его выполнения, а затем, если желаемое состояние присутствует, ничего не делать клиенту Chef Infra Client.

Свойства

Следующие свойства могут использоваться для определения защиты, которая оценивается во время фазы выполнения клиента Chef Infra Client:

not_if

Запретить выполнение ресурса, когда условие возвращает true.

only_if

Разрешить выполнение ресурса только в том случае, если условие возвращает true.

Примеры


Следующие примеры демонстрируют различные подходы к использованию ресурса chef_client_config в рецептах:

Минимальная конфигурация клиента Chef Infra Client client.rb:

Абсолютно минимальная конфигурация, необходимая для связи узла с сервером Infra, — это URL сервера Infra. Все другие параметры конфигурации либо имеют значения на стороне сервера (файлы политики, роли, среды и т. д.), либо имеют значения по умолчанию, определенные при запуске клиента.

chef_client_config 'Create client.rb' do
  chef_server_url 'https://chef.example.dmz'
end

Более сложная конфигурация клиента Chef Infra Client client.rb:

chef_client_config 'Create client.rb' do
  chef_server_url 'https://chef.example.dmz'
  log_level :info
  log_location :syslog
  http_proxy 'proxy.example.dmz'
  https_proxy 'proxy.example.dmz'
  no_proxy %w(internal.example.dmz)
end

Добавление дополнительного конфигурационного содержимого в client.rb:

Этот ресурс предназначен для предоставления общих параметров конфигурации. Некоторые параметры конфигурации отсутствуют, и некоторые пользователи могут захотеть использовать произвольный Ruby-код в своей конфигурации. Для этого предлагается свойство additional_config, которое можно использовать для добавления любой конфигурации или кода в конец файла client.rb. Также имейте в виду, что в каталоге конфигурации находится каталог client.d, где вы можете поместить дополнительные файлы .rb с параметрами конфигурации. Их можно создавать с помощью ресурсов file или template в ваших кулинарных книгах по мере необходимости.

chef_client_config 'Create client.rb' do
  chef_server_url 'https://chef.example.dmz'
  additional_config <<~CONFIG
    # Extra config code to safely load a gem into the client run.
    # Since the config is Ruby you can run any Ruby code you want via the client.rb.
    # It's a great way to break things, so be careful
    begin
      require 'aws-sdk'
    rescue LoadError
      Chef::Log.warn "Failed to load aws-sdk."
    end
  CONFIG
end

Настройка двух обработчиков отчетов в client.rb:

chef_client_config 'Create client.rb' do
  chef_server_url 'https://chef.example.dmz'
  report_handlers [
    {
     'class' => 'ReportHandler1Class',
     'arguments' => ["'FirstArgument'", "'SecondArgument'"],
    },
    {
     'class' => 'ReportHandler2Class',
     'arguments' => ["'FirstArgument'", "'SecondArgument'"],
    },
  ]
end
Ресурс chef_client_config
  • Синтаксис
  • Действия
  • Свойства
  • Общие возможности ресурсов
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

© 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/resources/chef_client_config/

Spec-Zone.ru

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