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 строка |
| Используется в сочетании с 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 список / элементы=строка | Список привилегий, которые должна иметь служба при запуске. При установке у службы будут только привилегии, указанные в ее марке доступа. У имени пользователя службы должны быть уже назначены привилегии. Существующие привилегии будут заменены списком, определенным в задаче, если с ними есть несоответствие. Установите пустой список, чтобы удалить все требуемые привилегии, в противном случае пропущенное или нулевое значение сохранит существующие привилегии. См. список констант текста привилегий для списка констант привилегий, которые можно использовать. | ||
| service_type строка |
| Тип службы. Тип новой службы по умолчанию равен 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/windows/win_service_module.html