systemd_service role for OpenStack-Ansible

systemd_service role for OpenStack-Ansible

tags:openstack, systemd_service, cloud, ansible
category:*nix

This role will configure Systemd units:

Default variables

# This is the default path for a given service. Set this for general service lookups or
#  define "program_override" option in the systemd_services dictionary.
systemd_bin_path: /usr/local/bin

system_user_name: root
system_group_name: root
system_slice_name: system
system_lock_path: /var/lock

# This is the prefix used for all temp files of a given type.
systemd_tempd_prefix: tempd

# Give a reasonable amount of time for the server to start up/shut down
systemd_TimeoutSec: 120
systemd_Restart: on-failure
systemd_RestartSec: 2

# Set accounting on systemd service
system_CPUAccounting: true
system_BlockIOAccounting: true
system_MemoryAccounting: true
system_TasksAccounting: true

# Start service after a given target. This is here because we want to define common
#  after targets used on most services. This can be overridden or agumented using
#  the "systemd_services" dictionary option "config_overrides".
systemd_after_targets:
  - syslog.target
  - network.target

# Set the service state. Valid options are: [started, stopped, restarted, reloaded].
systemd_service_state: started

# Set the service enabled state. Valid options are: [yes, no]
systemd_service_enabled: yes

# The systemd services dictionary is a set of services that will be created. The dictionary
#  can contain the following options:
#  `service_name` -- (required) used to define the name of the service. This is typically the name of the executable.
#  `config_overrides` -- (optional) This allows any section or key=value pair to be set within the systemd unit file.
#  `program_config_options` -- (optional) Provides the ability to pass in flags to a given service for execution.
#  `program_override` -- (optional) sets the full path to the executable that will be run by the service file.
#  `enabled` -- (optional) Set the enabled state of the service.
#  `state` -- (optional) Set the running state of the service.

#  Examples:
#   systemd_services:
#     ServiceW:
#       service_name: ServiceW
#       config_overrides: {}  # This is used to add in arbitratry unit file options
#     ServiceX:
#       service_name: ServiceX
#       config_overrides: {}  # This is used to add in arbitratry unit file options
#       program_config_options: '--flag1 things --flag2 other'
#     ServiceY:
#       service_name: ServiceY
#       config_overrides: {}  # This is used to add in arbitratry unit file options
#       program_override: '/usr/bin/ServiceY'
#     ServiceZ:
#       service_name: ServiceZ
#       config_overrides: {}  # This is used to add in arbitratry unit file options
#       enabled: no
#       state: stopped

systemd_services: {}

Example playbook

.. code-block:: yaml

    - name: Create a systemd unit file for ServiceX
      hosts: localhost
      become: true
      roles:
        - role: "systemd_service"
          systemd_services:
            service_name: ServiceX
            config_overrides: {}
            program_config_options: '--flag1 things --flag2 other'
          tags:
            - servicex-init

Tags

This role supports one tag: systemd-init.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.