Spec-Zone.ru › Chef 17

windows_service Ресурс

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

Страница со всеми ресурсами 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