Spec-Zone.ru › Ansible 2.10

ansible.windows.win_service – Управление и запросы служб Windows

Примечание

Этот плагин входит в коллекцию ansible.windows (версия 1.3.0).

Для установки используйте: ansible-galaxy collection install ansible.windows.

Для использования в книге задач укажите: ansible.windows.win_service.

  • Описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Управление и запросы служб Windows.
  • Для целей, не являющихся Windows, используйте модуль ansible.builtin.service вместо этого.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
dependencies
список / элементы=строка
Список зависимостей сервиса, которые нужно установить для данного сервиса.
В списке должны быть имена сервисов, а не их отображаемые названия.
Это работает, dependency_action добавляя/удаляя или устанавливая сервисы в этом списке.
dependency_action
строка
    Варианты:
  • add
  • remove
  • set ←
Используется совместно с dependency для добавления зависимостей к существующим зависимостям сервиса.
Удаление зависимостей от существующих зависимостей.
Установка зависимостей только на значения в списке, заменяя существующие зависимости.
description
строка
Описание, которое нужно установить для сервиса.
desktop_interact
булево
    Варианты:
  • нет ←
  • да
Разрешить ли пользователю сервиса взаимодействовать с рабочим столом.
Это можно установить только в yes при использовании имени пользователя LocalSystem.
Это можно установить только в yes когда service_type является win32_own_process или win32_share_process.
display_name
строка
Отображаемое имя для установки сервиса.
error_control
строка
    Варианты:
  • критическая
  • игнорировать
  • обычная
  • серьёзная
Степень серьёзности ошибки и действие, если сервис не запустится.
Новый сервис по умолчанию устанавливается в normal.
critical будет регистрировать ошибку и перезапустит систему с последней известной работоспособной конфигурацией. Если запуск провалится при перезагрузке, система не будет работать.
ignore игнорирует ошибку.
normal регистрирует ошибку в журнале событий, но продолжает работу.
severe похоже на critical, но ошибка при перезапуске с последней известной работоспособной конфигурации будет проигнорирована.
failure_actions
список / элементы=словарь
Список действий, которые должен выполнить контроллер сервисов при каждой ошибке сервиса.
Диспетчер сервисов будет выполнять действия от первого до последнего, определённого, пока сервис не запустится. Если время failure_reset_period_sec истекло, действия при ошибке будут повторены с начала.
Если все действия были выполнены, диспетчер сервисов повторит последнее определённое действие сервиса.
Существующие действия будут заменены списком, определённым в задаче, если с ними есть несоответствие.
Установите пустой список, чтобы удалить все действия при ошибке для сервиса, в противном случае пропущенное или нулевое значение сохранит существующие действия сервиса.
delay_ms
сырые
Значение по умолчанию:
0
Время ожидания в миллисекундах перед выполнением заданного действия.

псевдонимы: delay
type
строка / обязательно
    Варианты:
  • нет
  • перезагрузка
  • перезапуск
  • выполнить_команду
Действие, которое должно быть выполнено.
none не выполнит никакого действия, когда используется, это должно быть установлено только как последнее действие.
reboot перезагрузит хост, при использовании это должно быть установлено только как последнее действие, так как перезагрузка сбросит список действий обратно к началу.
restart перезапустит сервис.
run_command выполнит команду, указанную в failure_command.
failure_actions_on_non_crash_failure
булево
    Варианты:
  • нет
  • да
Управляет тем, будут ли выполняться действия при ошибках, не связанных с сбоями.
failure_command
строка
Команда для выполнения при действии run_command при ошибке.
Установите пустую строку, чтобы удалить команду.
failure_reboot_msg
строка
Сообщение, которое будет передано пользователям, вошедшим в систему на хосте, при выполнении действия reboot при ошибке.
Установите пустую строку, чтобы удалить сообщение.
failure_reset_period_sec
сырые
Время в секундах, после которого список действий при ошибке начинается с начала, если нет ошибок.
Чтобы установить это значение, failure_actions должен иметь как минимум 1 действие.
Укажите '0xFFFFFFFF' чтобы установить бесконечный период сброса.

псевдонимы: failure_reset_period
force_dependent_services
булево
    Варианты:
  • нет ←
  • да
Если yes, остановка или перезапуск сервиса с зависимыми сервисами принудительно остановит или перезапустит зависимые сервисы.
Если no, остановка или перезапуск сервиса с зависимыми сервисами может завершиться ошибкой.
load_order_group
строка
Имя группы упорядочения загрузки, к которой относится этот сервис.
Укажите пустую строку, чтобы удалить существующую группу упорядочения загрузки сервиса.
name
строка / обязательно
Имя сервиса.
Если указан только параметр имени, модуль сообщит о существовании или отсутствии сервиса без внесения каких-либо изменений.
password
строка
Пароль для запуска сервиса.
Этот и аргумент username должны быть предоставлены вместе при использовании локальной или доменной учетной записи.
Если опущено, то пароль будет использовать существующее значение.
Если указаны LocalSystem, NetworkService, LocalService, NT SERVICE, или gMSA, этот параметр можно опустить, так как у этих учетных записей нет пароля.
path
строка
Путь к исполняемому файлу для сервиса.
pre_shutdown_timeout_ms
сырые
Время в миллисекундах, в течение которого диспетчер сервисов ожидает после отправки уведомления о предварительном завершении работы сервису, прежде чем продолжить другие действия по завершению работы.

псевдонимы: pre_shutdown_timeout
required_privileges
список / элементы=строка
Список привилегий, которые должен иметь сервис при запуске.
При установке сервис будет иметь только те привилегии, которые указаны в его токенах доступа.
У пользователя сервиса (username) должны уже быть назначены привилегии.
Существующие привилегии будут заменены списком, определённым в задаче, если с ними есть несоответствие.
Установите пустой список, чтобы удалить все необходимые привилегии, в противном случае опушенное или нулевое значение сохранит существующие привилегии.
См. список констант привилегий для списка констант привилегий, которые можно использовать.
service_type
строка
    Варианты:
  • user_own_process
  • user_share_process
  • win32_own_process
  • win32_share_process
Тип сервиса.
Тип нового сервиса по умолчанию — win32_own_process.
desktop_interact может быть установлен только если тип сервиса win32_own_process или win32_share_process.
sid_info
строка
    Варианты:
  • нет
  • ограниченный
  • неограниченный
Используется для определения поведения групп токенов доступа сервиса.
none не добавит никакие группы в токен.
restricted добавит SID NT SERVICE\<service name> в группы токена доступа и ограниченные группы.
unrestricted добавит SID NT SERVICE\<service name> в группы токена доступа.
start_mode
строка
    Варианты:
  • авто
  • задержка
  • выключен
  • ручной
Установите тип запуска сервиса.
У нового сервиса по умолчанию будет auto.
state
строка
    Варианты:
  • отсутствует
  • приостановлен
  • запущен
  • остановлен
  • перезапущен
Желаемое состояние сервиса.
started/stopped/absent/paused — идемпотентные действия, которые не будут запускать команды, если это не необходимо.
restarted всегда перезапустит сервис.
Только сервисы, поддерживающие состояние приостановки, могут быть приостановлены, вы можете проверить возвращаемое значение can_pause_and_continue.
Можно приостановить только уже запущенный сервис.
У нового сервиса по умолчанию будет stopped.
update_password
строка
    Варианты:
  • всегда
  • при_создании
При установке в always и заданном password, модуль всегда сообщит об изменении и установит пароль.
Установите on_create чтобы установить пароль только если модулю нужно создать сервис.
Если username был указан и сервис был изменён на это имя пользователя, то password также будет изменён, если он был указан.
Текущий стандарт — on_create, но это поведение может измениться в будущем, лучше быть явным в этом случае.
Имя пользователя
строка
Имя пользователя, под которым служба должна запускаться.
Также может быть установлено в LocalSystem или SYSTEM, чтобы использовать учетную запись SYSTEM.
Новои созданная служба по умолчанию будет использовать LocalSystem.
Если используется пользовательская учетная запись, она должна иметь разрешение SeServiceLogonRight, чтобы иметь возможность запускаться. Для предоставления этого права пользователю можно использовать модуль ansible.windows.win_user_right.
Установите в NT SERVICE\service name, чтобы запустить службу под учетной записью NT SERVICE.
Также может быть gMSA в формате DOMAIN\gMSA$.

Примечания

Примечание

  • Исторически этот модуль возвращал информацию о службе в своих значениях возврата. Следует избегать этого в пользу модуля ansible.windows.win_service_info.
  • Большинство опций в этом модуле — это службы, не являющиеся драйверами, которые можно просмотреть в SCManager. Хотя вы можете редактировать службы драйверов, не все функции могут быть доступны.
  • Пользователь, запускающий модуль, должен иметь следующие права доступа к службе, чтобы использовать его с этим модулем — SERVICE_CHANGE_CONFIG, SERVICE_ENUMERATE_DEPENDENTS, SERVICE_QUERY_CONFIG, SERVICE_QUERY_STATUS.
  • Изменение состояния или удаление службы также потребуют дополнительных прав в зависимости от того, что необходимо сделать.

См. также

См. также

ansible.builtin.service

Официальная документация по модулю ansible.builtin.service.

community.windows.win_nssm

Официальная документация по модулю community.windows.win_nssm.

ansible.windows.win_service_info

Официальная документация по модулю ansible.windows.win_service_info.

ansible.windows.win_user_right

Официальная документация по модулю ansible.windows.win_user_right.

Примеры

- name: Restart a service
  ansible.windows.win_service:
    name: spooler
    state: restarted

- name: Set service startup mode to auto and ensure it is started
  ansible.windows.win_service:
    name: spooler
    start_mode: auto
    state: started

- name: Pause a service
  ansible.windows.win_service:
    name: Netlogon
    state: paused

- name: Ensure that WinRM is started when the system has settled
  ansible.windows.win_service:
    name: WinRM
    start_mode: delayed

# A new service will also default to the following values:
# - username: LocalSystem
# - state: stopped
# - start_mode: auto
- name: Create a new service
  ansible.windows.win_service:
    name: service name
    path: C:\temp\test.exe

- name: Create a new service with extra details
  ansible.windows.win_service:
    name: service name
    path: C:\temp\test.exe
    display_name: Service Name
    description: A test service description

- name: Remove a service
  ansible.windows.win_service:
    name: service name
    state: absent

# This is required to be set for non-service accounts that need to run as a service
- name: Grant domain account the SeServiceLogonRight user right
  ansible.windows.win_user_right:
    name: SeServiceLogonRight
    users:
    - DOMAIN\User
    action: add

- name: Set the log on user to a domain account
  ansible.windows.win_service:
    name: service name
    state: restarted
    username: DOMAIN\User
    password: Password

- name: Set the log on user to a local account
  ansible.windows.win_service:
    name: service name
    state: restarted
    username: .\Administrator
    password: Password

- name: Set the log on user to Local System
  ansible.windows.win_service:
    name: service name
    state: restarted
    username: SYSTEM

- name: Set the log on user to Local System and allow it to interact with the desktop
  ansible.windows.win_service:
    name: service name
    state: restarted
    username: SYSTEM
    desktop_interact: yes

- name: Set the log on user to Network Service
  ansible.windows.win_service:
    name: service name
    state: restarted
    username: NT AUTHORITY\NetworkService

- name: Set the log on user to Local Service
  ansible.windows.win_service:
    name: service name
    state: restarted
    username: NT AUTHORITY\LocalService

- name: Set the log on user as the services' virtual account
  ansible.windows.win_service:
    name: service name
    username: NT SERVICE\service name

- name: Set the log on user as a gMSA
  ansible.windows.win_service:
    name: service name
    username: DOMAIN\gMSA$  # The end $ is important and should be set for all gMSA

- name: Set dependencies to ones only in the list
  ansible.windows.win_service:
    name: service name
    dependencies: [ service1, service2 ]

- name: Add dependencies to existing dependencies
  ansible.windows.win_service:
    name: service name
    dependencies: [ service1, service2 ]
    dependency_action: add

- name: Remove dependencies from existing dependencies
  ansible.windows.win_service:
    name: service name
    dependencies:
    - service1
    - service2
    dependency_action: remove

- name: Set required privileges for a service
  ansible.windows.win_service:
    name: service name
    username: NT SERVICE\LocalService
    required_privileges:
    - SeBackupPrivilege
    - SeRestorePrivilege

- name: Remove all required privileges for a service
  ansible.windows.win_service:
    name: service name
    username: NT SERVICE\LocalService
    required_privileges: []

- name: Set failure actions for a service with no reset period
  ansible.windows.win_service:
    name: service name
    failure_actions:
    - type: restart
    - type: run_command
      delay_ms: 1000
    - type: restart
      delay_ms: 5000
    - type: reboot
    failure_command: C:\Windows\System32\cmd.exe /c mkdir C:\temp
    failure_reboot_msg: Restarting host because service name has failed
    failure_reset_period_sec: '0xFFFFFFFF'

- name: Set only 1 failure action without a repeat of the last action
  ansible.windows.win_service:
    name: service name
    failure_actions:
    - type: restart
      delay_ms: 5000
    - type: none

- name: Remove failure action information
  ansible.windows.win_service:
    name: service name
    failure_actions: []
    failure_command: ''  # removes the existing command
    failure_reboot_msg: ''  # removes the existing reboot msg

Значения возврата

Общие значения возврата документированы здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
can_pause_and_continue
булево
успех и служба существует
Возвращает, может ли служба приостанавливаться и возобновляться.

Пример:
True
depended_by
список / элементы=строка
успех и служба существует
Список служб, которые зависят от данной службы.

dependencies
список / элементы=строка
успех и служба существует
Список служб, от которых зависит данная служба.

description
строка
успех и служба существует
Описание службы.

Пример:
Управляет общением между системными компонентами.
desktop_interact
булево
успех и служба существует
Разрешено ли текущему пользователю взаимодействие с рабочим столом.

display_name
строка
успех и служба существует
Отображаемое имя установленной службы.

Пример:
CoreMessaging
exists
булево
успех
Существует ли служба.

Пример:
True
name
строка
успех и служба существует
Имя или идентификатор службы.

Пример:
CoreMessagingRegistrar
path
строка
успех и служба существует
Путь к исполняемому файлу службы.

Пример:
C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
start_mode
строка
успех и служба существует
Тип запуска службы.

Пример:
manual
state
строка
успех и служба существует
Текущее состояние запуска службы.

Пример:
stopped
username
строка
успех и служба существует
Имя пользователя, под которым запускается служба.

Пример:
LocalSystem


Авторы

  • Chris Hoffman (@chrishoffman)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/ansible/windows/win_service_module.html

Spec-Zone.ru

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