forked from evolix/ansible-roles
69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
---
|
|
- name: Install lxc tools
|
|
ansible.builtin.apt:
|
|
name:
|
|
- lxc
|
|
- debootstrap
|
|
- xz-utils
|
|
|
|
- name: python-lxc is installed (Debian <= 10)
|
|
ansible.builtin.apt:
|
|
name: python-lxc
|
|
state: present
|
|
when: ansible_python_version is version('3', '<')
|
|
|
|
- name: python3-lxc is installed (Debian >= 10)
|
|
ansible.builtin.apt:
|
|
name: python3-lxc
|
|
state: present
|
|
when: ansible_python_version is version('3', '>=')
|
|
|
|
- name: Install additional packages (Debian >= 10)
|
|
ansible.builtin.apt:
|
|
name:
|
|
- apparmor
|
|
- lxc-templates
|
|
when: ansible_distribution_major_version is version('10', '>=')
|
|
|
|
- name: Copy LXC default containers configuration
|
|
ansible.builtin.template:
|
|
src: default.conf
|
|
dest: /etc/lxc/
|
|
|
|
- name: Check if root has subuids
|
|
ansible.builtin.command:
|
|
cmd: 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
|
|
ansible.builtin.command:
|
|
cmd: usermod -v 100000-199999 -w 100000-109999 root
|
|
when:
|
|
- lxc_unprivilegied_containers | bool
|
|
- root_subuids.rc != 0
|
|
|
|
- name: Get filesystem options
|
|
ansible.builtin.command:
|
|
cmd: findmnt --noheadings --target /var/lib/lxc --output OPTIONS
|
|
changed_when: False
|
|
check_mode: no
|
|
register: check_fs_options
|
|
|
|
- name: Check if options are correct
|
|
ansible.builtin.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"
|
|
|
|
- name: Create containers
|
|
ansible.builtin.include: create-container.yml
|
|
vars:
|
|
name: "{{ item.name }}"
|
|
release: "{{ item.release }}"
|
|
loop: "{{ lxc_containers }}"
|