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
This commit is contained in:
parent
97dcee4c98
commit
d648be03ec
19
tools/kolla-libvirt-guests.service
Normal file
19
tools/kolla-libvirt-guests.service
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[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
|
24
tools/setup-compute-libvirt.yml
Normal file
24
tools/setup-compute-libvirt.yml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# 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 }}"
|
5
tools/virt-guest-shutdown.target
Normal file
5
tools/virt-guest-shutdown.target
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Coordination target for machined controlled guests
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user