Spec-Zone.ru › Chef 16

windows_service Ресурс

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

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


Используйте ресурс 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 InfraClient.

Уведомления

notifies

Тип Ruby: Symbol, '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.

Примеры


В следующих примерах показаны различные подходы к использованию ресурса 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
Ресурс windows_service
  • Синтаксис
  • Действия
  • Свойства
  • Общие возможности ресурса
    • Общие свойства
    • Уведомления
    • Фильтры
  • Примеры

© 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