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/apt-repo/docker-com/files/repo.gpg | Bin 0 -> 2760 bytes roles/apt-repo/docker-com/tasks/main.yml | 19 ++++++++++++ roles/docker/defaults/main.yml | 10 ------- roles/docker/engine/defaults/main.yml | 10 +++++++ roles/docker/engine/handlers/main.yml | 5 ++++ roles/docker/engine/tasks/lvm.yml | 18 +++++++++++ roles/docker/engine/tasks/main.yml | 46 +++++++++++++++++++++++++++++ roles/docker/engine/tasks/zfs.yml | 14 +++++++++ roles/docker/files/docker-com.gpg | Bin 2760 -> 0 bytes roles/docker/handlers/main.yml | 5 ---- roles/docker/tasks/docker-com.yml | 19 ------------ roles/docker/tasks/lvm.yml | 18 ----------- roles/docker/tasks/main.yml | 45 ---------------------------- roles/docker/tasks/zfs.yml | 14 --------- roles/kubernetes/base/tasks/cri_docker.yml | 2 +- 15 files changed, 113 insertions(+), 112 deletions(-) create mode 100644 roles/apt-repo/docker-com/files/repo.gpg create mode 100644 roles/apt-repo/docker-com/tasks/main.yml delete mode 100644 roles/docker/defaults/main.yml create mode 100644 roles/docker/engine/defaults/main.yml create mode 100644 roles/docker/engine/handlers/main.yml 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 delete mode 100644 roles/docker/files/docker-com.gpg delete mode 100644 roles/docker/handlers/main.yml delete mode 100644 roles/docker/tasks/docker-com.yml delete mode 100644 roles/docker/tasks/lvm.yml delete mode 100644 roles/docker/tasks/main.yml delete mode 100644 roles/docker/tasks/zfs.yml (limited to 'roles') diff --git a/roles/apt-repo/docker-com/files/repo.gpg b/roles/apt-repo/docker-com/files/repo.gpg new file mode 100644 index 00000000..e5dc8cfd Binary files /dev/null and b/roles/apt-repo/docker-com/files/repo.gpg differ diff --git a/roles/apt-repo/docker-com/tasks/main.yml b/roles/apt-repo/docker-com/tasks/main.yml new file mode 100644 index 00000000..df879a89 --- /dev/null +++ b/roles/apt-repo/docker-com/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: add repository key + copy: + src: repo.gpg + dest: /etc/apt/trusted.gpg.d/docker-com.gpg + register: apt_repo_docker_com_key + +- name: add repository entry + copy: + content: | + deb https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable + dest: /etc/apt/sources.list.d/docker-com.list + register: apt_repo_docker_com_sources + +- name: update apt cache + when: apt_repo_docker_com_key is changed or + apt_repo_docker_com_sources is changed + apt: + update_cache: yes diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml deleted file mode 100644 index b2c21963..00000000 --- a/roles/docker/defaults/main.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -docker_pkg_provider: distro -docker_pkg_name: docker.io - -# docker_pkg_provider: docker-com -# docker_pkg_name: docker-ce - -# docker_pkg_version: - -# docker_daemon_config: {} diff --git a/roles/docker/engine/defaults/main.yml b/roles/docker/engine/defaults/main.yml new file mode 100644 index 00000000..b2c21963 --- /dev/null +++ b/roles/docker/engine/defaults/main.yml @@ -0,0 +1,10 @@ +--- +docker_pkg_provider: distro +docker_pkg_name: docker.io + +# docker_pkg_provider: docker-com +# docker_pkg_name: docker-ce + +# docker_pkg_version: + +# docker_daemon_config: {} diff --git a/roles/docker/engine/handlers/main.yml b/roles/docker/engine/handlers/main.yml new file mode 100644 index 00000000..3627303e --- /dev/null +++ b/roles/docker/engine/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart docker + service: + name: docker + state: restarted 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 diff --git a/roles/docker/files/docker-com.gpg b/roles/docker/files/docker-com.gpg deleted file mode 100644 index e5dc8cfd..00000000 Binary files a/roles/docker/files/docker-com.gpg and /dev/null differ diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml deleted file mode 100644 index 3627303e..00000000 --- a/roles/docker/handlers/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- name: restart docker - service: - name: docker - state: restarted diff --git a/roles/docker/tasks/docker-com.yml b/roles/docker/tasks/docker-com.yml deleted file mode 100644 index f44d2755..00000000 --- a/roles/docker/tasks/docker-com.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- name: add repository key - copy: - src: docker-com.gpg - dest: /etc/apt/trusted.gpg.d/docker.gpg - register: apt_repo_docker_com_key - -- name: add repository entry - copy: - content: | - deb https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable - dest: /etc/apt/sources.list.d/docker.list - register: apt_repo_docker_com_key - -- name: update apt cache - when: apt_repo_docker_com_key is changed or - apt_repo_docker_com_sources is changed - apt: - update_cache: yes diff --git a/roles/docker/tasks/lvm.yml b/roles/docker/tasks/lvm.yml deleted file mode 100644 index 34cbab0f..00000000 --- a/roles/docker/tasks/lvm.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- 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/tasks/main.yml b/roles/docker/tasks/main.yml deleted file mode 100644 index 62712551..00000000 --- a/roles/docker/tasks/main.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -- 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 ### this does not work on first install because adding the repo might flush handlers... - -- 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_tasks: "{{ docker_pkg_provider }}.yml" - -- 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/tasks/zfs.yml b/roles/docker/tasks/zfs.yml deleted file mode 100644 index e8289c7d..00000000 --- a/roles/docker/tasks/zfs.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- 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 diff --git a/roles/kubernetes/base/tasks/cri_docker.yml b/roles/kubernetes/base/tasks/cri_docker.yml index b5024163..44f3f82e 100644 --- a/roles/kubernetes/base/tasks/cri_docker.yml +++ b/roles/kubernetes/base/tasks/cri_docker.yml @@ -23,4 +23,4 @@ - name: install docker include_role: - name: docker + name: docker/engine -- cgit v1.2.3