From 3a79a0cb900cb3f02c79b9953cf81038953fc0f2 Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Sat, 13 Aug 2016 19:08:16 +0300 Subject: [PATCH] - Configure Docker graph directory. - Wait for Docker service to start after the graph directory is accessible (home directory is mounted). - Move some tasks to be handlers. - Override dnsmasq unit file to start before systemd-resolved (otherwise port 53 will be used and dnsmasq will fail to load). --- desktop.yml | 78 ++++++++++++++++--- ...asq.service.d_before-systemd-resovled.conf | 2 + templates/docker.service.d_Assertions.conf.j2 | 4 + 3 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 templates/dnsmasq.service.d_before-systemd-resovled.conf create mode 100644 templates/docker.service.d_Assertions.conf.j2 diff --git a/desktop.yml b/desktop.yml index b4a4a03..0e16f7c 100644 --- a/desktop.yml +++ b/desktop.yml @@ -2,6 +2,24 @@ - hosts: all become: yes become_user: root + vars: + docker_graph_mount: '/home/{{ ansible_env.SUDO_USER }}' + docker_graph_directory: '{{ docker_graph_mount }}/.bind_mounts/docker' + handlers: + - name: Systemd daemon reload + command: /bin/systemctl daemon-reload + + - name: Restart Docker + service: + name: docker + state: restarted + + - name: Update initramfs + command: /usr/sbin/update-initramfs -u + + - name: Update GRUB + command: /usr/sbin/update-grub + tasks: - assert: that: @@ -21,7 +39,7 @@ state: present update_cache: yes - - name: apt install + - name: APT install with_items: - plymouth - network-manager @@ -61,10 +79,6 @@ value: spinner register: configure_plymouth - - name: Update initramfs - when: configure_plymouth.changed - command: /usr/sbin/update-initramfs -u - - name: Configure GRUB with_dict: GRUB_TIMEOUT: 1 @@ -76,13 +90,59 @@ state: present register: configure_grub - - name: Update GRUB - when: configure_grub.changed - command: /usr/sbin/update-grub - - name: Make /tmp tmpfs mount mount: fstype: tmpfs name: /tmp src: none state: present + + - name: Create Docker graph directory + file: + path: '{{ docker_graph_directory }}' + owner: root + group: root + mode: 0o711 + notify: + - Restart Docker + + - name: Configure Docker graph directory + ignore_errors: True + lineinfile: + dest: /etc/default/docker + line: 'DOCKER_OPTS="--graph {{ docker_graph_directory }}"' + regexp: '^DOCKER_OPTS=' + state: present + notify: + - Restart Docker + + - name: Create Systemd configuration override directories + with_items: + - docker.service + - dnsmasq.service + file: + path: '/etc/systemd/system/{{ item }}.d/' + owner: root + group: root + mode: 0o0755 + state: directory + + - name: Override docker.service Systemd configuration + template: + src: docker.service.d_Assertions.conf.j2 + dest: /etc/systemd/system/docker.service.d/Assertions.conf + owner: root + group: root + mode: 0o0644 + notify: + - Systemd daemon reload + + - name: Override dnsmasq.service Systemd configuration + template: + src: dnsmasq.service.d_before-systemd-resovled.conf + dest: /etc/systemd/system/dnsmasq.service.d/before-systemd-resovled.conf + owner: root + group: root + mode: 0o0644 + notify: + - Systemd daemon reload diff --git a/templates/dnsmasq.service.d_before-systemd-resovled.conf b/templates/dnsmasq.service.d_before-systemd-resovled.conf new file mode 100644 index 0000000..ea64571 --- /dev/null +++ b/templates/dnsmasq.service.d_before-systemd-resovled.conf @@ -0,0 +1,2 @@ +[Unit] +Before=systemd-resolved.service diff --git a/templates/docker.service.d_Assertions.conf.j2 b/templates/docker.service.d_Assertions.conf.j2 new file mode 100644 index 0000000..598b709 --- /dev/null +++ b/templates/docker.service.d_Assertions.conf.j2 @@ -0,0 +1,4 @@ +[Unit] +After=home-nimrod.mount +AssertPathIsMountPoint={{ docker_graph_mount }} +AssertPathIsDirectory={{ docker_graph_directory }} -- GitLab