ansible.builtin.systemd (v2.5.15) — module

Manage services

| "added in version" 2.2 of ansible.builtin"

Authors: Ansible Core Team

stableinterface | supported by core

Install Ansible via pip

Install with pip install ansible==2.5.15

Description

Controls systemd services on remote hosts.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Make sure a service is running
  systemd: state=started name=httpd
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: stop service cron on debian, if running
  systemd: name=cron state=stopped
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: restart service cron on centos, in all cases, also issue daemon-reload to pick up config changes
  systemd:
    state: restarted
    daemon_reload: yes
    name: crond
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: reload service httpd, in all cases
  systemd:
    name: httpd
    state: reloaded
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: enable service httpd and ensure it is not masked
  systemd:
    name: httpd
    enabled: yes
    masked: no
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: enable a timer for dnf-automatic
  systemd:
    name: dnf-automatic.timer
    state: started
    enabled: True
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: just force systemd to reread configs (2.4 and above)
  systemd: daemon_reload=yes

Inputs

    
name:
    aliases:
    - service
    - unit
    description:
    - Name of the service. When using in a chroot environment you always need to specify
      the full name i.e. (crond.service).

user:
    default: 'no'
    description:
    - run systemctl talking to the service manager of the calling user, rather than the
      service manager of the system.
    type: bool

state:
    choices:
    - reloaded
    - restarted
    - started
    - stopped
    description:
    - C(started)/C(stopped) are idempotent actions that will not run commands unless necessary.
      C(restarted) will always bounce the service. C(reloaded) will always reload.

masked:
    description:
    - Whether the unit should be masked or not, a masked unit is impossible to start.
    type: bool

enabled:
    description:
    - Whether the service should start on boot. B(At least one of state and enabled are
      required.)
    type: bool

no_block:
    default: 'no'
    description:
    - Do not synchronously wait for the requested operation to finish. Enqueued job will
      continue without Ansible blocking on its completion.
    type: bool
    version_added: '2.3'
    version_added_collection: ansible.builtin

daemon_reload:
    aliases:
    - daemon-reload
    default: 'no'
    description:
    - run daemon-reload before doing any other operations, to make sure systemd has read
      any changes.
    type: bool

Outputs

status:
  contains:
    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'
  description: A dictionary with the key=value pairs returned from `systemctl show`
  returned: success
  type: complex