Skip to content
Snippets Groups Projects
Commit d648be03 authored by Clint Byrum's avatar Clint Byrum Committed by Adam Harwell
Browse files

Add safe shutdown systemd jobs to tools

Without these jobs, a compute node that is rebooted or powered off may
violently kill off the VMs running inside of it. This has been kept
separate from the main portion of kolla-ansible since no current role
modifies the systemd jobs of the system.

Change-Id: I0a4424f97b5ad872ff0398258c1dc42d31d0ef07
parent 97dcee4c
No related branches found
No related tags found
No related merge requests found
[Unit]
Description=Manage libvirt guests in kolla safely
After=docker.service
After=systemd-machined.service
After=virt-guest-shutdown.target
Requires=docker.service
Requires=virt-guest-shutdown.target
[Install]
WantedBy=multi-user.target
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutStopSec=610
ExecStart=-/usr/bin/docker exec nova_libvirt /bin/rm -f /var/lib/libvirt/libvirt-guests
ExecStart=-/usr/bin/docker start nova_compute
ExecStop=/usr/bin/docker stop nova_compute
ExecStop=/usr/bin/docker exec nova_libvirt /bin/sh -x /usr/libexec/libvirt-guests.sh shutdown
# This playbook modifies the system shutdown sequence to ensure that
# nova-compute is shutdown safely, including guests, when used in
# conjunction with systemd-machined and libvirt.
---
- name: Set up compute libvirts to shutdown guests safely
hosts: compute
become: true
vars:
systemd_artifacts:
- kolla-libvirt-guests.service
- virt-guest-shutdown.target
tasks:
- name: Install systemd artifacts
copy:
src: "{{ item }}"
dest: "/usr/lib/systemd/system/{{ item }}"
with_items: "{{ systemd_artifacts }}"
- name: Enable/start systemd artifacts
systemd:
enabled: yes
state: started
name: "{{ item }}"
with_items: "{{ systemd_artifacts }}"
[Unit]
Description=Coordination target for machined controlled guests
[Install]
WantedBy=multi-user.target
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment