openstack-ansible-os_neutron/templates/neutron-systemd-init.j2
Jesse Pretorius 2f10f75425 Ensure that services restart in a particular order
Currently when multiple services share a host, the
restart order is random. This is due to an unordered
dict being used to facilitate the mapping of services
to their groups, names and other options.

Based on [1], this patch implements changes to the role
to ensure that services on the same host are restarted
in the correct order when the software/config changes.

[1] https://docs.openstack.org/developer/neutron/devref/upgrade.html

Change-Id: I368b51ef37763f4163ead591d6743c4d56962ef9
2017-06-21 09:37:46 +01:00

35 lines
974 B
Django/Jinja

# {{ ansible_managed }}
[Unit]
Description=neutron openstack service
After=syslog.target
After=network.target
[Service]
Type=simple
User={{ item.system_user | default(neutron_system_user_name) }}
Group={{ item.system_group | default(neutron_system_group_name) }}
{% if item.program_override is defined %}
ExecStart={{ item.program_override }} {{ item.config_options | default('') }}
{% else %}
ExecStart={{ neutron_bin }}/{{ item.program_binary | default(item.service_name) }} {{ item.config_options | default('') }}
{% endif %}
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=120
Restart=on-failure
RestartSec=2
# This creates a specific slice which all services will operate from
# The accounting options give us the ability to see resource usage through
# the `systemd-cgtop` command.
Slice=neutron.slice
CPUAccounting=true
BlockIOAccounting=true
MemoryAccounting=false
TasksAccounting=true
[Install]
WantedBy=multi-user.target