service#
Модуль ansible.builtin.service управляет службами на управляемых узлах.
Особенности работы#
Особенности использования модуля ansible.builtin.service:
Поддерживаются различные системы инициализации: BSD init, OpenRC, SysV, Solaris SMF, systemd, upstart.
Модуль выступает в роли прокси-сервера (посредника), который перенаправляет выполнение в соответствующий модуль управления службами, например, ansible.builtin.systemd. Это позволяет управлять службами в разнородной среде, не создавая отдельную задачу для каждого типа системы инициализации. Какой модуль будет вызван, определяется параметром
use. Если он не указан, Ansible использует модуль ansible.builtin.setup для определения типа системы управления службами. Если модуль ansible.builtin.setup еще не запускался, он будет вызван автоматически.Модуль передает все указанные параметры, однако поскольку разные модули управления службами поддерживают разные параметры, в этом документе описаны только те параметры, которые поддерживаются всеми такими модулями.
В системе AIX можно использовать названия групповых подсистем.
Утилита командной строки
serviceне является частью какой-либо системы управления службами – это лишь вспомогательный инструмент.Для управления службами на узлах под управлением Windows используйте модуль
ansible.windows.win_service.
Параметры#
Модуль принимает следующие параметры:
- arguments, args#
Дополнительные аргументы, передаваемые в командную строку при запуске службы.
При использовании узлов с systemd параметр игнорируется.
Значение по умолчанию:
""(пустая строка).
- enabled#
Требуется хотя бы один из параметров:
stateилиenabled.Запуск соответствующей службы при загрузке.
Возможные значения:
false– не запускать службу при загрузке;true– запускать службу при загрузке.
- name#
Обязательный параметр.
Название службы.
- pattern#
Подстрока, которую нужно искать в выводе команды
ps, если служба не поддерживает командуstatus. Если строка найдена, считается, что служба запущена.При использовании узлов с systemd параметр игнорируется.
- runlevel#
Уровень выполнения, с которым будет связана служба.
Параметр используется только в системах с инициализацией OpenRC, например, Gentoo.
Значение по умолчанию:
default.
- sleep#
Пауза в секундах между остановкой и запуском службы при
state=restarted. Это помогает обойти некорректно работающие сценарии инициализации, которые завершают работу сразу после подачи сигнала о завершении процесса.При использовании узлов с systemd параметр игнорируется.
- state#
Требуется хотя бы один из параметров:
stateилиenabled.Действие, которое необходимо сделать со службой.
Если параметр используется, необходимо указать параметр
name.Возможные значения:
reloaded– перечитать конфигурацию службы. Если служба была остановлена, она запустится.restarted– перезапуск службы.started– запуск службы, если она остановлена.stopped– остановка службы, если она запущена.
Примечание
startedиstoppedявляются идемпотентными действиями, которые не запускают команды без необходимости.
- use#
Модуль управления службами, который необходимо использовать.
По умолчанию модуль
ansible.builtin.serviceавтоматически определяет, какую систему инициализации использует целевой узел, и вызывает соответствующий модуль. Это поведение управляется фактомansible_service_mgr, который собирается с помощью модуля ansible.builtin.setup.Если по какой-то причине не обнаружена ни одна подходящая система, Ansible использует устаревший модуль
ansible.legacy.service, который также пытается определить способ управления службами, но не является эквивалентом командыservice.Значение по умолчанию:
auto.
Атрибуты#
Атрибуты определяют функции Ansible, которые может использовать модуль.
Атрибут |
Описание |
|---|---|
|
Модуль имеет соответствующее расширение действия (action plugin), которое выполняет работу на управляющем узле. |
|
Модуль поддерживает асинхронное выполнение. |
|
Модуль не выполняется как глобальная задача. Для каждого узла выполняется отдельный цикл с учетом всех ограничений. |
|
Поддержка режима проверки зависит от используемого модуля управления службами. |
|
Поддержка режима сравнения зависит от используемого модуля управления службами. |
|
Поддержка системы зависит от наличия подходящего модуля управления службами для конкретной платформы и от того, может ли Ansible определить эту систему с помощью сбора фактов. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Запуск#
Следующий пример демонстрирует запуск службы httpd, если она не запущена:
---
- name: Run service httpd if stopped
ansible.builtin.service:
name: httpd
state: started
Остановка#
Следующий пример демонстрирует остановку службы httpd, если она запущена:
---
- name: Stop service httpd if running
ansible.builtin.service:
name: httpd
state: stopped
Перезапуск#
Следующий пример демонстрирует полный перезапуск службы crond, независимо от текущего состояния:
---
- name: Restart crond
ansible.builtin.service:
name: crond
state: restarted
Перезагрузка#
В следующем примере служба httpd обновит свои действующие настройки без остановки работы:
---
- name: Reload httpd
ansible.builtin.service:
name: httpd
state: reloaded
Включение автозапуска#
Следующий пример демонстрирует запуск службы httpd и включение ее автозапуска при загрузке:
---
- name: Enable httpd
ansible.builtin.service:
name: httpd
state: started
enabled: true
Проверка статуса службы#
Следующий пример демонстрирует проверку статуса службы cron с помощью параметра pattern:
---
- name: Start cron service, checking process manually
ansible.builtin.service:
name: cron
pattern: /usr/sbin/cron
state: started
Передача аргумента#
Следующий пример демонстрирует перезапуск службы network с передачей аргумента eth0:
---
- name: Restart network service for interface eth0
ansible.builtin.service:
name: network
state: restarted
args: eth0