Spec-Zone.ru › Ansible

Модуль ansible.builtin.systemd_service — управление модулями systemd

Примечание

Этот модуль входит в ansible-core и включен во все установки Ansible. В большинстве случаев можно использовать краткое имя модуля systemd_service, даже не указывая ключевое слово collections. Однако мы рекомендуем использовать полное имя коллекции (FQCN) ansible.builtin.systemd_service, чтобы упростить переход к документации модуля и избежать конфликтов с другими коллекциями, в которых может быть модуль с таким же именем.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Управляет модулями systemd (службами, таймерами и т. д.) на удаленных узлах.
  • ansible.builtin.systemd переименован в ansible.builtin.systemd_service, чтобы точнее отражать область применения модуля. ansible.builtin.systemd сохранен в качестве псевдонима для обратной совместимости.

Псевдонимы: systemd

Требования

На узле, на котором выполняется этот модуль, необходимы следующие компоненты.

  • Система под управлением systemd.

Параметры

Параметр

Комментарии

daemon_reexec

псевдонимы: daemon-reexec

логический

добавлен в Ansible 2.8

Выполнить команду daemon_reexec перед любыми другими операциями; диспетчер systemd сериализует свое состояние.

Варианты:

  • false ← (по умолчанию)
  • true

daemon_reload

псевдонимы: daemon-reload

логический

Выполнить daemon-reload перед любыми другими операциями, чтобы systemd учел все изменения.

Если задано значение true, команда daemon-reload выполняется, даже если модуль ничего не запускает и не останавливает.

Варианты:

  • false ← (по умолчанию)
  • true

enabled

логический

Должен ли модуль запускаться при загрузке системы. Необходимо указать хотя бы один из параметров state или enabled.

Если задано значение, требуется name.

Варианты:

  • false
  • true

force

логический

Следует ли переопределять существующие символические ссылки.

Варианты:

  • false
  • true

masked

логический

Следует ли маскировать модуль. Маскированный модуль невозможно запустить.

Если задано значение, требуется name.

Варианты:

  • false
  • true

name

псевдонимы: service, unit

строка

Имя модуля. Этот параметр принимает имя ровно одного модуля, с которым нужно работать.

Если расширение не указано, подразумевается .service, как в systemd.

При использовании в среде chroot необходимо всегда указывать имя модуля вместе с расширением. Например, crond.service.

no_block

логический

Не дожидаться синхронно завершения запрошенной операции. Поставленная в очередь задача продолжит выполняться, а Ansible не будет блокировать выполнение в ожидании ее завершения.

Варианты:

  • false ← (по умолчанию)
  • true

scope

строка

добавлен в Ansible 2.7

Выполнить systemctl в указанной области диспетчера служб: в системной области по умолчанию system, в области текущего пользователя user или в области всех пользователей global.

Чтобы systemd мог работать с user, у выполняющего задачу пользователя должен быть запущен собственный экземпляр dbus, к которому есть доступ (требование systemd).

Процесс dbus пользователя обычно запускается при обычном входе в систему, но не во время выполнения задач Ansible. В противном случае, вероятно, возникнет ошибка «Failed to connect to bus: no such file or directory».

У пользователя должен быть доступ, который обычно предоставляется путем установки переменной XDG_RUNTIME_DIR. См. пример ниже.

Варианты:

  • "system" ← (по умолчанию)
  • "user"
  • "global"

state

строка

started/stopped — идемпотентные действия, которые выполняют команды только при необходимости. restarted всегда перезапускает модуль. reloaded всегда перезагружает модуль, а если служба не запущена на момент перезагрузки, то запускает ее.

Если задано значение, требуется name.

Варианты:

  • "reloaded"
  • "restarted"
  • "started"
  • "stopped"

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой узел; если режим не поддерживается, действие будет пропущено.

diff_mode

Поддержка: нет

В режиме diff возвращает сведения об изменениях (или об изменениях, которые могут потребоваться в режиме check_mode).

platform

Платформа: posix

Целевые ОС и семейства ОС, с которыми можно работать

Примечания

Примечание

  • state, enabled, masked требует name.
  • До версии 2.4 всегда требовался name.
  • Шаблоны glob не поддерживаются в параметре name; другими словами, postgres*.service.
  • Названия служб могут различаться в зависимости от ОС или дистрибутива.
  • При наличии нескольких свойств сначала выполняется включение или отключение, затем маскирование или снятие маски, а после этого обрабатывается состояние службы. Сообщалось, что systemctl может вести себя по-разному в зависимости от порядка операций, если выполнить их вручную в том же порядке.

Примеры

- name: Make sure a service unit is running
  ansible.builtin.systemd_service:
    state: started
    name: httpd

- name: Stop service cron on debian, if running
  ansible.builtin.systemd_service:
    name: cron
    state: stopped

- name: Restart service cron on centos, in all cases, also issue daemon-reload to pick up config changes
  ansible.builtin.systemd_service:
    state: restarted
    daemon_reload: true
    name: crond

- name: Reload service httpd, in all cases
  ansible.builtin.systemd_service:
    name: httpd.service
    state: reloaded

- name: Enable service httpd and ensure it is not masked
  ansible.builtin.systemd_service:
    name: httpd
    enabled: true
    masked: no

- name: Enable a timer unit for dnf-automatic
  ansible.builtin.systemd_service:
    name: dnf-automatic.timer
    state: started
    enabled: true

- name: Just force systemd to reread configs (2.4 and above)
  ansible.builtin.systemd_service:
    daemon_reload: true

- name: Just force systemd to re-execute itself (2.8 and above)
  ansible.builtin.systemd_service:
    daemon_reexec: true

- name: Run a user service when XDG_RUNTIME_DIR is not set on remote login
  ansible.builtin.systemd_service:
    name: myservice
    state: started
    scope: user
  environment:
    XDG_RUNTIME_DIR: "/run/user/{{ myuid }}"

Возвращаемые значения

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

Ключ

Описание

status

словарь

Словарь с парами ключ=значение, возвращаемыми командой systemctl show.

Возвращается: при успешном выполнении

Пример: {"ActiveEnterTimestamp": "Sun 2016-05-15 18:28:49 EDT", "ActiveEnterTimestampMonotonic": "8135942", "ActiveExitTimestampMonotonic": "0", "ActiveState": "active", "After": "auditd.service systemd-user-sessions.service time-sync.target systemd-journald.socket basic.target system.slice", "AllowIsolate": "no", "Before": "shutdown.target multi-user.target", "BlockIOAccounting": "no", "BlockIOWeight": "1000", "CPUAccounting": "no", "CPUSchedulingPolicy": "0", "CPUSchedulingPriority": "0", "CPUSchedulingResetOnFork": "no", "CPUShares": "1024", "CanIsolate": "no", "CanReload": "yes", "CanStart": "yes", "CanStop": "yes", "CapabilityBoundingSet": "18446744073709551615", "ConditionResult": "yes", "ConditionTimestamp": "Sun 2016-05-15 18:28:49 EDT", "ConditionTimestampMonotonic": "7902742", "Conflicts": "shutdown.target", "ControlGroup": "/system.slice/crond.service", "ControlPID": "0", "DefaultDependencies": "yes", "Delegate": "no", "Description": "Command Scheduler", "DevicePolicy": "auto", "EnvironmentFile": "/etc/sysconfig/crond (ignore_errors=no)", "ExecMainCode": "0", "ExecMainExitTimestampMonotonic": "0", "ExecMainPID": "595", "ExecMainStartTimestamp": "Sun 2016-05-15 18:28:49 EDT", "ExecMainStartTimestampMonotonic": "8134990", "ExecMainStatus": "0", "ExecReload": "{ path=/bin/kill ; argv[]=/bin/kill -HUP $MAINPID ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "ExecStart": "{ path=/usr/sbin/crond ; argv[]=/usr/sbin/crond -n $CRONDARGS ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "FragmentPath": "/usr/lib/systemd/system/crond.service", "GuessMainPID": "yes", "IOScheduling": "0", "Id": "crond.service", "IgnoreOnIsolate": "no", "IgnoreOnSnapshot": "no", "IgnoreSIGPIPE": "yes", "InactiveEnterTimestampMonotonic": "0", "InactiveExitTimestamp": "Sun 2016-05-15 18:28:49 EDT", "InactiveExitTimestampMonotonic": "8135942", "JobTimeoutUSec": "0", "KillMode": "process", "KillSignal": "15", "LimitAS": "18446744073709551615", "LimitCORE": "18446744073709551615", "LimitCPU": "18446744073709551615", "LimitDATA": "18446744073709551615", "LimitFSIZE": "18446744073709551615", "LimitLOCKS": "18446744073709551615", "LimitMEMLOCK": "65536", "LimitMSGQUEUE": "819200", "LimitNICE": "0", "LimitNOFILE": "4096", "LimitNPROC": "3902", "LimitRSS": "18446744073709551615", "LimitRTPRIO": "0", "LimitRTTIME": "18446744073709551615", "LimitSIGPENDING": "3902", "LimitSTACK": "18446744073709551615", "LoadState": "loaded", "MainPID": "595", "MemoryAccounting": "no", "MemoryLimit": "18446744073709551615", "MountFlags": "0", "Names": "crond.service", "NeedDaemonReload": "no", "Nice": "0", "NoNewPrivileges": "no", "NonBlocking": "no", "NotifyAccess": "none", "OOMScoreAdjust": "0", "OnFailureIsolate": "no", "PermissionsStartOnly": "no", "PrivateNetwork": "no", "PrivateTmp": "no", "RefuseManualStart": "no", "RefuseManualStop": "no", "RemainAfterExit": "no", "Requires": "basic.target", "Restart": "no", "RestartUSec": "100ms", "Result": "success", "RootDirectoryStartOnly": "no", "SameProcessGroup": "no", "SecureBits": "0", "SendSIGHUP": "no", "SendSIGKILL": "yes", "Slice": "system.slice", "StandardError": "inherit", "StandardInput": "null", "StandardOutput": "journal", "StartLimitAction": "none", "StartLimitBurst": "5", "StartLimitInterval": "10000000", "StatusErrno": "0", "StopWhenUnneeded": "no", "SubState": "running", "SyslogLevelPrefix": "yes", "SyslogPriority": "30", "TTYReset": "no", "TTYVHangup": "no", "TTYVTDisallocate": "no", "TimeoutStartUSec": "1min 30s", "TimeoutStopUSec": "1min 30s", "TimerSlackNSec": "50000", "Transient": "no", "Type": "simple", "UMask": "0022", "UnitFileState": "enabled", "WantedBy": "multi-user.target", "Wants": "system.slice", "WatchdogTimestampMonotonic": "0", "WatchdogUSec": "0"}

Авторы

  • Основная команда Ansible

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь с командой

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/systemd_service_module.html

Spec-Zone.ru

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