Spec-Zone.ru › Chef 17

Ресурс chef_client_config

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

Страница со всеми ресурсами Infra


Используйте ресурс chef_client_config для создания файла client.rb в каталоге конфигурации клиента Chef Infra. См. документацию по 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
  data_collector_server_url      String
  data_collector_token           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
  policy_persist_run_list        true, false
  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 для приведения узла в желаемое состояние.
  • additional_config, chef_license, chef_server_url, config_directory, data_collector_server_url, data_collector_token, 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, policy_persist_run_list, report_handlers, ssl_verify_mode, start_handlers, и user — это свойства, доступные для этого ресурса.

Действия


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

:create
Создать файл конфигурации client.rb для настройки клиента Chef Infra. (по умолчанию)
:nothing
Этот блок ресурса не выполняет никаких действий, если не получит уведомление от другого ресурса о необходимости выполнить действие. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения клиента Chef Infra.
:remove
Удалить файл конфигурации client.rb для настройки клиента Chef Infra.

Свойства


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

additional_config
Тип Ruby: String

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

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

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

chef_server_url
Тип Ruby: String | REQUIRED

URL-адрес сервера Chef Infra.

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

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

data_collector_server_url
Тип Ruby: String

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

Примечание

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

Новое в Chef Infra Client 17.8

data_collector_token
Тип Ruby: String

Токен коллектора данных для взаимодействия с URL-адресом сервера коллектора данных (Automate).

Примечание

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

Новое в Chef Infra Client 17.8

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

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

file_backup_path
Тип Ruby: String

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

file_cache_path
Тип Ruby: String

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

file_staging_uses_destdir
Тип Ruby: String

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

formatters
Тип Ruby: Array | Значение по умолчанию: []

Форматировщики журналов клиента для загрузки.

ftp_proxy
Тип Ruby: String

Прокси-сервер для использования для FTP-подключений.

group
Тип Ruby: String

Группа, которой должен принадлежать файл client.rb и каталог конфигурации, если его необходимо создать.

Примечание

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

http_proxy
Тип Ruby: String

Прокси-сервер для использования для HTTP-подключений.

https_proxy
Тип Ruby: String

Прокси-сервер для использования для HTTPS-подключений.

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

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

log_location
Тип Ruby: String, Symbol

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

minimal_ohai
Тип Ruby: true, false

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

named_run_list
Тип Ruby: String

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

no_proxy
Тип Ruby: String, Array | Значение по умолчанию: []

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

node_name
Тип Ruby: String | Значение по умолчанию: 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: Array | Значение по умолчанию: []

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

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

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

pid_file
Тип Ruby: String

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

policy_group
Тип Ruby: String

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

policy_name
Тип Ruby: String

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

policy_persist_run_list
Тип Ruby: true, false

Переопределить списки выполнения, определенные в Policyfile, с помощью run_list, определенного на сервере Chef Infra.

Новое в Chef Infra Client 17.3

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 Server, подключения к S3 и любые URL ресурсов remote_file HTTPS, используемые в выполнении 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 Infra Client.

Уведомления

notifies

Тип Ruby: Символ, 'Chef::Resource[Строка]'

Ресурс может уведомить другой ресурс о действиях при изменении его состояния. Укажите '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[Строка]'

Ресурс может подписываться на другой ресурс и выполнять действие, если состояние подписываемого ресурса изменится. Укажите '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:

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

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 Automate.

chef_client_config 'Create client.rb' do
  chef_server_url 'https://chef.example.dmz'
  data_collector_server_url 'https://automate.example.dmz'
  data_collector_token 'TEST_TOKEN_TEST'
end

© 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