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 список / элементы=строка | Список привилегий, которые должен иметь сервис при запуске. При установке сервис будет иметь только те привилегии, которые указаны в его токенах доступа. У пользователя сервиса (username) должны уже быть назначены привилегии. Существующие привилегии будут заменены списком, определённым в задаче, если с ними есть несоответствие. Установите пустой список, чтобы удалить все необходимые привилегии, в противном случае опушенное или нулевое значение сохранит существующие привилегии. См. список констант привилегий для списка констант привилегий, которые можно использовать. | ||
| 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–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