Spec-Zone.ru › Chef 18

windows_service Ресурс

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

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


Используйте ресурс windows_service для создания, удаления или управления службой на платформе Microsoft Windows.

Синтаксис


Блок ресурсов windows_service управляет состоянием службы на машине под управлением Microsoft Windows. Например:

windows_service 'BITS' do
  action :configure_startup
  startup_type :manual
end

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

windows_service 'name' do
  binary_path_name      String
  delayed_start         true, false # default value: false
  dependencies          String, Array
  description           String
  desired_access        Integer # default value: 983551
  display_name          String
  error_control         Integer # default value: 1
  init_command          String
  load_order_group      String
  pattern               String
  reload_command        String, false
  restart_command       String, false
  run_as_password       String
  run_as_user           String # default value: "LocalSystem"
  service_name          String # default value: 'name' unless specified
  service_type          Integer # default value: "SERVICE_WIN32_OWN_PROCESS"
  start_command         String, false
  startup_type          Symbol # default value: :automatic
  status_command        String, false
  stop_command          String, false
  supports              Hash # default value: {"restart"=>nil, "reload"=>nil, "status"=>nil}
  timeout               Integer
  action                Symbol # defaults to :nothing if not specified
end

где:

  • windows_service является ресурсом.
  • name — это имя, данное блоку ресурсов.
  • action определяет, какие шаги предпримет клиент Chef Infra для приведения узла в желаемое состояние.
  • binary_path_name, display_name, desired_access, delayed_start, dependencies, description, error_control, init_command, load_order_group, pattern, reload_command, restart_command, run_as_password, run_as_user, service_name, service_type, start_command, startup_type, status_command, stop_command, supports, и timeout являются свойствами этого ресурса, с указанным типом Ruby. См. раздел «Свойства» ниже для получения дополнительной информации обо всех свойствах, которые могут использоваться с этим ресурсом.

Действия


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

:configure
Настроить существующую службу. Новое в Chef Client 14.0.
:configure_startup
Настроить службу на основе значения свойства startup_type.
:create
Создать службу на основе значения свойства binary_path_name, service_name и/или display_name. Новое в Chef Client 14.0.
:delete
Удалить службу на основе значения свойства service_name. Новое в Chef Client 14.0.
:disable
Отключить службу. Это действие эквивалентно типу запуска Disabled на платформе Microsoft Windows.
:enable
Включить службу при загрузке. Это действие эквивалентно типу запуска Automatic на платформе Microsoft Windows.
:nothing
По умолчанию. Ничего не делать со службой.
:reload
Перезагрузить конфигурацию для этой службы. Это действие не поддерживается на платформе Windows и вызовет ошибку, если используется.
:restart
Перезапустить службу.
:start
Запустить службу и поддерживать ее работу до остановки или отключения.
:stop
Остановить службу.

Свойства


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

binary_path_name
Тип Ruby: String

Полный путь к исполняемому файлу службы. Путь может также включать аргументы для службы автозапуска. Это необходимо для действий :create и :configure

Новое в Chef Client 14.0

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

Установить тип запуска на отложенный запуск. Это применимо только в том случае, если startup_type равно :automatic

Новое в Chef Client 14.0

dependencies
Тип Ruby: String, Array

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

Новое в Chef Client 14.0

description
Тип Ruby: String

Описание службы.

Новое в Chef Client 14.0

desired_access
Тип Ruby: Integer | Значение по умолчанию: 983551

Новое в Chef Client 14.0

display_name
Тип Ruby: String

Отображаемое имя, которое будет использоваться программами пользовательского интерфейса для идентификации службы. Эта строка имеет максимальную длину 256 символов.

Новое в Chef Client 14.0

error_control
Тип Ruby: Integer | Значение по умолчанию: 1

Новое в Chef Client 14.0

load_order_group
Тип Ruby: String

Имя(на) группы(п) загрузки службы.

Новое в Chef Client 14.0

pattern
Тип Ruby: String | Значение по умолчанию: The value provided to 'service_name' or the resource block's name

Шаблон для поиска в таблице процессов.

reload_command
Тип Ruby: String, false

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

restart_command
Тип Ruby: String, false

Команда, используемая для перезапуска службы.

run_as_password
Тип Ruby: String

Пароль для пользователя, указанного в run_as_user.

run_as_user
Тип Ruby: String | Значение по умолчанию: localsystem

Пользователь, под которым работает служба Microsoft Windows.

service_name
Тип Ruby: String | Значение по умолчанию: The resource block's name

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

service_type
Тип Ruby: Integer | Значение по умолчанию: 16

Новое в Chef Client 14.0

start_command
Тип Ruby: String, false

Команда, используемая для запуска службы.

startup_type
Тип Ruby: Symbol | Значение по умолчанию: :automatic Допустимые значения: :automatic, :disabled, :manual

Используется для указания типа запуска службы.

status_command
Тип Ruby: String, false

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

stop_command
Тип Ruby: String, false

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

supports
Тип Ruby: Hash | Значение по умолчанию: {"restart"=>nil, "reload"=>nil, "status"=>nil}

Список свойств, которые управляют тем, как клиент Chef Infra должен пытаться управлять службой: :restart, :reload, :status. Для :restart, скрипт инициализации или другой поставщик служб может использовать команду перезапуска; если :restart не указан, клиент Chef Infra пытается остановить, а затем запустить службу. Для :reload, скрипт инициализации или другой поставщик служб может использовать команду перезагрузки. Для :status, скрипт инициализации или другой поставщик служб может использовать команду состояния для определения того, запущена ли служба; если :status не указан, клиент Chef Infra пытается сопоставить service_name с таблицей процессов как регулярное выражение, если только шаблон не указан как параметр свойства. Значение по умолчанию: { restart: false, reload: false, status: false } для всех платформ (за исключением семейства платформ Red Hat, которое по умолчанию использует { restart: false, reload: false, status: true }).

timeout
Тип Ruby: Integer | Значение по умолчанию: 60

Время ожидания (в секундах) перед истечением времени ожидания.


Общие функции ресурса


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

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

Следующие свойства являются общими для каждого ресурса:

compile_time

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

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

ignore_failure

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

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

retries

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

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

retry_delay

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

Задержка в секундах между попытками повтора.

sensitive

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

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

Уведомления

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.

Примеры


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

Запуск служб

Запустить службу с типом запуска manual:

windows_service 'BITS' do
  action :configure_startup
  startup_type :manual
end

Создание служб

Создать службу с именем chef-client:

windows_service 'chef-client' do
  action :create
  binary_path_name "C:\opscode\chef\bin"
end

Создать службу с service_name и display_name:

windows_service 'Setup chef-client as a service' do
  action :create
  display_name 'CHEF-CLIENT'
  service_name 'chef-client'
  binary_path_name "C:\opscode\chef\bin"
end

Создать службу с типом запуска manual:

windows_service 'chef-client' do
  action :create
  binary_path_name "C:\opscode\chef\bin"
  startup_type :manual
end

Создать службу с типом запуска disabled:

windows_service 'chef-client' do
  action :create
  binary_path_name "C:\opscode\chef\bin"
  startup_type :disabled
end

Создать службу с типом запуска automatic и включенным отложенным запуском:

windows_service 'chef-client' do
  action :create
  binary_path_name "C:\opscode\chef\bin"
  startup_type :automatic
  delayed_start true
end

Создать службу с описанием:

windows_service 'chef-client' do
  action :create
  binary_path_name "C:\opscode\chef\bin"
  startup_type :automatic
  description "Chef client as service"
end

Удаление служб

Удалить службу с именем chef-client:

windows_service 'chef-client' do
  action :delete
end

Удалить службу со свойством service_name:

windows_service 'Delete chef client' do
  action :delete
  service_name 'chef-client'
end

Настройка служб

Изменить существующую службу с автоматического на ручного запуска:

windows_service 'chef-client' do
  action :configure
  binary_path_name "C:\opscode\chef\bin"
  startup_type :manual
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/windows_service/

Spec-Zone.ru

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