From 559e51d94ceb081c56e9f0560eb6ba32ecb7ca2f Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 23 Oct 2020 01:16:06 +0200 Subject: split docker role into apt-repo and engine --- roles/docker/engine/tasks/lvm.yml | 18 +++++++++++++++ roles/docker/engine/tasks/main.yml | 46 ++++++++++++++++++++++++++++++++++++++ roles/docker/engine/tasks/zfs.yml | 14 ++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 roles/docker/engine/tasks/lvm.yml create mode 100644 roles/docker/engine/tasks/main.yml create mode 100644 roles/docker/engine/tasks/zfs.yml (limited to 'roles/docker/engine/tasks') diff --git a/roles/docker/engine/tasks/lvm.yml b/roles/docker/engine/tasks/lvm.yml new file mode 100644 index 00000000..34cbab0f --- /dev/null +++ b/roles/docker/engine/tasks/lvm.yml @@ -0,0 +1,18 @@ +--- +- name: create logical volume + lvol: + vg: "{{ docker_lvm.vg }}" + lv: "{{ docker_lvm.lv }}" + size: "{{ docker_lvm.size }}" + +- name: create filesystem + filesystem: + fstype: "{{ docker_lvm.fs }}" + dev: "/dev/mapper/{{ docker_lvm.vg | replace('-', '--') }}-{{ docker_lvm.lv | replace('-', '--') }}" + +- name: mount filesytem + mount: + src: "/dev/mapper/{{ docker_lvm.vg | replace('-', '--') }}-{{ docker_lvm.lv | replace('-', '--') }}" + path: /var/lib/docker + fstype: "{{ docker_lvm.fs }}" + state: mounted diff --git a/roles/docker/engine/tasks/main.yml b/roles/docker/engine/tasks/main.yml new file mode 100644 index 00000000..68a6504e --- /dev/null +++ b/roles/docker/engine/tasks/main.yml @@ -0,0 +1,46 @@ +--- +- name: install docker daemon config + when: docker_daemon_config is defined + block: + - name: create docker config directory + file: + name: /etc/docker + state: directory + mode: 0700 + + - name: write docker daemon config + copy: + content: "{{ docker_daemon_config | to_nice_json }}\n" + dest: /etc/docker/daemon.json + notify: restart docker + +- name: prepare /var/lib/docker as LVM + when: docker_lvm is defined + import_tasks: lvm.yml + +- name: prepare /var/lib/docker as ZFS dataset + when: docker_zfs is defined + import_tasks: zfs.yml + +- name: prepare package provider + when: docker_pkg_provider != 'distro' + include_role: + name: "apt-repo/{{ docker_pkg_provider }}" + +- name: install docker + apt: + name: "{{ docker_pkg_name }}{% if docker_pkg_version is defined %}={{ docker_pkg_version }}{% endif %}" + state: present + force: yes + +- name: disable automatic upgrades for docker package + when: docker_pkg_version is defined + dpkg_selections: + name: "{{ docker_pkg_name }}" + selection: hold + +- name: start and enable docker + service: + name: docker + enabled: true + state: started diff --git a/roles/docker/engine/tasks/zfs.yml b/roles/docker/engine/tasks/zfs.yml new file mode 100644 index 00000000..e8289c7d --- /dev/null +++ b/roles/docker/engine/tasks/zfs.yml @@ -0,0 +1,14 @@ +--- +- name: create zfs dataset + zfs: + name: "{{ docker_zfs.pool }}/{{ docker_zfs.name }}" + state: present + extra_zfs_properties: "{{ docker_zfs.properties | default(omit) }}" + +- name: bind mount filesytem + mount: + src: "{{ zfs_pools[docker_zfs.pool].mountpoint }}/{{ docker_zfs.name }}" + path: /var/lib/docker + fstype: none + opts: bind,x-systemd.automount,nofail + state: mounted -- cgit v1.2.3