76 lines
1.9 KiB
YAML
76 lines
1.9 KiB
YAML
|
---
|
||
|
# Check the CURRENT cgroup level; we get this from /proc/cmdline
|
||
|
- name: check current kernel options
|
||
|
shell: fgrep systemd.unified_cgroup_hierarchy=0 /proc/cmdline
|
||
|
register: result
|
||
|
ignore_errors: true
|
||
|
|
||
|
- name: determine current cgroups | assume v2
|
||
|
set_fact: current_cgroups=2
|
||
|
|
||
|
- name: determine current cgroups | looks like v1
|
||
|
set_fact: current_cgroups=1
|
||
|
when: result is succeeded
|
||
|
|
||
|
- debug:
|
||
|
msg: "want: v{{ want_cgroups }} actual: v{{ current_cgroups }}"
|
||
|
|
||
|
- name: grubenv, pre-edit, cat
|
||
|
shell: cat /boot/grub2/grubenv
|
||
|
register: grubenv
|
||
|
|
||
|
- name: grubenv, pre-edit, show
|
||
|
debug:
|
||
|
msg: "{{ grubenv.stdout_lines }}"
|
||
|
|
||
|
# Update grubenv file to reflect the desired cgroup level
|
||
|
- name: remove cgroup option from kernel flags
|
||
|
shell:
|
||
|
cmd: sed -i -e "s/^\(kernelopts=.*\)systemd\.unified_cgroup_hierarchy=.\(.*\)/\1 \2/" /boot/grub2/grubenv
|
||
|
warn: false
|
||
|
|
||
|
- name: add it with the desired value
|
||
|
shell:
|
||
|
cmd: sed -i -e "s/^\(kernelopts=.*\)/\1 systemd.unified_cgroup_hierarchy=0/" /boot/grub2/grubenv
|
||
|
warn: false
|
||
|
when: want_cgroups == 1
|
||
|
|
||
|
- name: grubenv, post-edit, cat
|
||
|
shell: cat /boot/grub2/grubenv
|
||
|
register: grubenv
|
||
|
|
||
|
- name: grubenv, post-edit, show
|
||
|
debug:
|
||
|
msg: "post: {{ grubenv.stdout_lines }}"
|
||
|
|
||
|
# If want != have, reboot
|
||
|
- name: reboot and wait
|
||
|
block:
|
||
|
- name: reboot
|
||
|
reboot:
|
||
|
reboot_timeout: 900
|
||
|
ignore_errors: yes
|
||
|
- name: wait and reconnect
|
||
|
wait_for_connection:
|
||
|
timeout: 900
|
||
|
when: want_cgroups|int != current_cgroups|int
|
||
|
|
||
|
- set_fact:
|
||
|
expected_fstype:
|
||
|
- none
|
||
|
- tmpfs
|
||
|
- cgroup2fs
|
||
|
|
||
|
- name: confirm cgroups setting
|
||
|
shell: stat -f -c "%T" /sys/fs/cgroup
|
||
|
register: fstype
|
||
|
|
||
|
- debug:
|
||
|
msg: "stat(/sys/fs/cgroup) = {{ fstype.stdout }}"
|
||
|
|
||
|
- name: system cgroups is the expected type
|
||
|
assert:
|
||
|
that:
|
||
|
- fstype.stdout == expected_fstype[want_cgroups|int]
|
||
|
fail_msg: "stat(/sys/fs/cgroup) = {{ fstype.stdout }} (expected {{ expected_fstype[want_cgroups|int] }})"
|