ansible-roles/lxc/tasks/main.yml

68 lines
1.7 KiB
YAML

---
- name: Install lxc tools
apt:
name:
- lxc
- debootstrap
- xz-utils
- name: python-lxc is installed (Debian <= 10)
apt:
name: python-lxc
state: present
when: ansible_python_version is version('3', '<')
- name: python3-lxc is installed (Debian >= 10)
apt:
name: python3-lxc
state: present
when: ansible_python_version is version('3', '>=')
- name: Install additional packages (Debian >= 10)
apt:
name:
- apparmor
- lxc-templates
when: ansible_distribution_major_version is version('10', '>=')
- name: Copy LXC default containers configuration
template:
src: default.conf
dest: /etc/lxc/
- name: Check if root has subuids
command: grep '^root:100000:10000$' /etc/subuid
failed_when: false
changed_when: false
register: root_subuids
when: lxc_unprivilegied_containers | bool
- name: Add subuid and subgid ranges to root
command: usermod -v 100000-199999 -w 100000-109999 root
when:
- lxc_unprivilegied_containers | bool
- root_subuids.rc != 0
- name: Get filesystem options
command: findmnt --noheadings --target /var/lib/lxc --output OPTIONS
changed_when: false
check_mode: no
register: check_fs_options
when: not ansible_check_mode
- name: Check if options are correct
assert:
that:
- "'nodev' not in check_fs_options.stdout"
- "'noexec' not in check_fs_options.stdout"
- "'nosuid' not in check_fs_options.stdout"
msg: "LXC directory is in a filesystem with incompatible options"
when: not ansible_check_mode
- name: Create containers
include: create-container.yml
vars:
name: "{{ item.name }}"
release: "{{ item.release }}"
loop: "{{ lxc_containers }}"