Nota

Este módulo es parte de ansible-base e incluido en todas las instalaciones de Ansible. En la mayoría de los casos, puede utilizar el nombre corto del módulo systemd incluso sin especificar el collections: palabra clave. A pesar de eso, le recomendamos que utilice el FQCN para facilitar la vinculación a la documentación del módulo y evitar conflictos con otras colecciones que puedan tener el mismo nombre de módulo.

Nuevo en la versión 2.2: de ansible.builtin

  • Sinopsis
  • Requisitos
  • Parámetros
  • Notas
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Controla los servicios de systemd en hosts remotos.

Requisitos

Los siguientes requisitos son necesarios en el host que ejecuta este módulo.

  • Un sistema gestionado por systemd.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
daemon_reexec booleano agregado en 2.8 de ansible.builtin
    Opciones:

  • no
Ejecute el comando daemon_reexec antes de realizar cualquier otra operación, el administrador systemd serializará el estado del administrador.

alias: daemon-reexec
daemon_reload booleano
    Opciones:

  • no
Ejecute daemon-reload antes de realizar cualquier otra operación, para asegurarse de que systemd haya leído los cambios. Cuando se establece en yes, ejecuta daemon-reload incluso si el módulo no inicia ni detiene nada.

alias: daemon-reload
activado booleano
    Opciones:

  • no
Si el servicio debe iniciarse al arrancar. Se requiere al menos uno de estado y habilitado.
fuerza booleano agregado en 2.6 de ansible.builtin
    Opciones:

  • no
Si se deben anular los enlaces simbólicos existentes.
enmascarado booleano
    Opciones:

  • no
Ya sea que la unidad deba estar enmascarada o no, es imposible poner en marcha una unidad enmascarada.
nombre cuerda Nombre del servicio. Este parámetro toma el nombre de exactamente un servicio con el que trabajar. Cuando se usa en un entorno chroot, siempre debe especificar el nombre completo, es decir, (crond.service).

alias: servicio, unidad
no_block booleano agregado en 2.3 de ansible.builtin
    Opciones:

  • no
No espere sincrónicamente a que finalice la operación solicitada. El trabajo en cola continuará sin que Ansible se bloquee una vez finalizado.
alcance cuerda agregado en 2.7 de ansible.builtin
    Opciones:

  • sistema
  • usuario
  • global
Ejecute systemctl dentro del alcance de un administrador de servicios dado, ya sea como el alcance del sistema predeterminado system, el alcance del usuario actual user, o el alcance de todos los usuarios global. Para que systemd funcione con ‘usuario’, el usuario que lo ejecuta debe tener su propia instancia de dbus iniciada y accesible (requisito de systemd). El proceso dbus del usuario normalmente se inicia durante el inicio de sesión normal, pero no durante la ejecución de las tareas de Ansible. De lo contrario, probablemente obtendrá el error “No se pudo conectar al bus: no existe tal archivo o directorio”. El usuario debe tener acceso, normalmente dado mediante la configuración de la variable “ XDG_RUNTIME_DIR ”, vea el ejemplo a continuación.
estado cuerda
    Opciones:

  • recargado
  • reiniciado
  • empezado
  • interrumpido
started/stopped son acciones idempotentes que no ejecutarán comandos a menos que sea necesario. restarted siempre rebotará el servicio. reloaded siempre se recargará.

Notas

Nota

  • Desde 2.4, se requiere una de las siguientes opciones ‘state’, ‘enabled’, ‘masked’, ‘daemon_reload’, (‘daemon_reexec’ desde 2.8), y todas excepto ‘daemon_reload’ (y ‘daemon_reexec’ desde 2.8) también requieren ‘nombre’.
  • Antes de 2.4, siempre requería ‘nombre’.
  • Globs no son compatibles con el nombre, es decir postgres*.service.
  • Apoyos check_mode.

Ejemplos de

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

- name: Stop service cron on debian, if running
  ansible.builtin.systemd:
    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:
    state: restarted
    daemon_reload: yes
    name: crond

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

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

- name: Enable a timer for dnf-automatic
  ansible.builtin.systemd:
    name: dnf-automatic.timer
    state: started
    enabled: yes

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

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

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

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
estado complejo éxito Un diccionario con los pares clave = valor devueltos por `systemctl show`.
Muestra: {‘ActiveEnterTimestamp’: ‘Sun 2016-05-15 18:28:49 EDT’, ‘ActiveEnterTimestampMonotonic’: ‘8135942’, ‘ActiveSalirTimestampMonotonic’: ‘0’, ‘ActiveState’: ‘activo’, ‘Después de’: ‘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 ‘:’ sí ‘,’ Delegar ‘:’ no ‘,’ Descripción ‘:’ Programador de comandos ‘,’ DevicePolicy ‘:’ auto ‘,’ Env ironmentFile ‘:’ / etc / sysconfig / crond (ignore_errors = no) ‘,’ ExecMainCode ‘:’ 0 ‘,’ ExecMainSalirTimestampMonotonic ‘:’ 0 ‘,’ ExecMainPID ‘:’ 595 ‘,’ ExecMainStartTimestamp ‘:’ Sun 2016-05 -15 18:28:49 EDT ‘,’ ExecMainStartTimestampMonotonic ‘:’ 8134990 ‘,’ ExecMainStatus ‘:’ 0 ‘,’ ExecReload ‘:’ {ruta = / bin / kill; argv[]= / bin / kill -HUP $ MAINPID; ignore_errors = no; start_time =[n/a] ; stop_time =[n/a] ; pid = 0; código = (nulo); status = 0/0} ‘,’ ExecStart ‘:’ {ruta = / usr / sbin / crond; argv[]= / usr / sbin / crond -n $ CRONDARGS; ignore_errors = no; start_time =[n/a] ; stop_time =[n/a] ; pid = 0; código = (nulo); status = 0/0} ‘,’ FragmentPath ‘:’ /usr/lib/systemd/system/crond.service ‘,’ GuessMainPID ‘:’ sí ‘,’ IOScheduling ‘:’ 0 ‘,’ Id ‘:’ crond. service ‘,’ IgnoreOnIsolate ‘:’ no ‘,’ IgnoreOnSnapshot ‘:’ no ‘,’ IgnoreSIGPIPE ‘:’ sí ‘,’ InactiveEnterTimestampMonotonic ‘:’ 0 ‘,’ InactiveSalirTimestamp ‘:’ Dom 2016-05-15 18:28: 49 EDT ‘,’ InactiveSalirTimestampMonotonic ‘:’ 8135942 ‘,’ JobTimeoutUSec ‘:’ 0 ‘,’ KillMode ‘:’ proceso ‘,’ KillSignal ‘:’ 15 ‘,’ LimitAS ‘:’ 18446744073709551615 ‘,’ LimitCORE ‘:’ 184495516440 ‘,’ LimitCPU ‘:’ 18446744073709551615 ‘,’ LimitDATA ‘:’ 18446744073709551615 ‘,’ LimitFSIZE ‘:’ 18446744073709551615 ‘,’ LimitLOCKS ‘:’ 18446744073709551615 ‘,’ LimitMUE ‘:’ 655MSGK19 ‘LimitNICE’: ‘0’, ‘LimitNOFILE’: ‘4096’, ‘LimitNPROC’: ‘3902’, ‘LimitRSS’: ‘18446744073709551615’, ‘LimitRTPRIO’: ‘0’, ‘LimitRTTIME’: ‘18446744073709551615’, ‘ ‘:’ 3902 ‘,’ LimitSTACK ‘:’ 18446744073709551615 ‘,’ LoadState ‘:’ cargado ‘,’ MainPID ‘:’ 595 ‘,’ MemoryAccounting ‘:’ no ‘,’ MemoryLimit ‘:’ 18446744073709551615 ‘,’ MountFlags ‘:’ 0 ‘,’ Nombres ‘:’ 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’, ‘RemainAfterSalir’: ‘no’, ‘Requiere’: ‘basic.target’, ‘Restart’: ‘no’, ‘RestartUSec’: ‘100ms’ , ‘Resultado’: ‘éxito’, ‘RootDirectoryStartOnly’: ‘no’, ‘SameProcessGroup’: ‘no’, ‘SecureBits’: ‘0’, ‘SendSIGHUP’: ‘no’, ‘SendSIGKILL’: ‘sí’, ‘ Slice ‘:’ system.slice ‘,’ StandardError ‘:’ heredar ‘,’ 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’, ‘Ti meoutStopUSec ‘:’ 1min 30s ‘,’ TimerSlackNSec ‘:’ 50000 ‘,’ Transient ‘:’ no ‘,’ Type ‘:’ simple ‘,’ UMask ‘:’ 0022 ‘,’ UnitFileState ‘:’ habilitado ‘,’ WantedBy ‘:’ multi-user.target ‘,’ Wants ‘:’ system.slice ‘,’ WatchdogTimestampMonotonic ‘:’ 0 ‘,’ WatchdogUSec ‘:’ 0 ‘}

Autores

  • Equipo principal de Ansible