AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,100 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example" published by Apress, and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

Ansible Stop & Disable Service: systemd Module Guide (with Examples)

By Luca Berton · Published 2024-01-01 · Category: installation

How to stop and disable services on boot with Ansible systemd and service modules. Manage systemd units, check service_facts, ensure services stay stopped. Practical YAML playbook examples.

How to stop and disable services on boot on Linux remote hosts with Ansible?

I'm going to show you a live Playbook with some simple Ansible code. I'm Luca Berton and welcome to today's episode of Ansible Pilot.

Ansible enable services on boot on remote hosts • ansible.builtin.service_facts • Return service state information as fact data • ansible.builtin.service • Manage services

Today we're talking about Ansible modules service_facts and service. First, you need to acquire the information of the services on the target machine. This task is performed by the Ansible module service_facts. You can't enable a service that doesn't exist, can you? The effective actions are performed by the Ansible module service. The full name is ansible.builtin.service which means that both these modules are part of the collection of modules "builtin" with Ansible and shipped with it. This module is pretty stable and out for years and its purpose is to manage services on remote hosts. For Windows targets, use the ansible.windows.win_service module instead.

Parameters • name path - name of the service • state string - started / stopped / restarted / reloaded • enabled boolean - no/yes • arguments/args string - extra args

The parameter list is pretty wide but I'll summarize the most useful. The only required parameter is "name" that specifies the name of the service. At least one between the "state" and "enabled" parameters is mandatory. The "state" parameter defines the action that we are going to take. It has four alternative options: "started" and "stopped" options allow you to run or stop the service. "restarted" is a combination of stop and start - you could also customize the number of seconds between using the "sleep" parameter The "reloaded" option is useful if the service needs to reload the configuration file. The "enable" parameter allows you to decide if the service should start on boot or not. The "arguments or args" parameter allows you to specify some additional arguments provided on the command line.

## Playbook

Stop and disable services on boot on Linux remote hosts with Ansible Playbook. Included code and Playbook with chronyd.service NTP server on a RedHat Enterprise Linux 8.

code • service_stop_disable_on_boot.yml

execution

before execution

after execution

code with ❤️ in GitHub

Conclusion Now you know how to stop and disable services on boot on Linux remote hosts with Ansible.

Stop a Service

Disable on Boot

Stop AND Disable

Using systemd Module

Mask a Service (Prevent Starting)

Check Service Status First

Stop Multiple Services

Conditional by OS

Security Hardening Pattern

Timer Units (systemd)

FAQ

service vs systemd module?

service works on any init system (systemd, SysV, Upstart). systemd is systemd-specific but supports extra features like daemon_reload and masked.

How to check if a service exists before managing it?

Use service_facts and check ansible_facts.services. Or use ignore_errors: true if the service might not be installed.

What's the difference between disabled and masked?

Disabled: won't start on boot but can be started manually. Masked: can't be started at all (linked to /dev/null).

Related ArticlesAnsible for Windows GuideAnsible when Conditional GuideAnsible Inventory GuideAnsible Become GuideAnsible Loops Guide

Category: installation

Watch the video: Ansible Stop & Disable Service: systemd Module Guide (with Examples) — Video Tutorial

Browse all Ansible tutorials · AnsiblePilot Home