From 37641440458282d6839999a1999b7e66eff2d0e3 Mon Sep 17 00:00:00 2001 From: paulfantom Date: Wed, 4 Apr 2018 22:59:41 +0200 Subject: [PATCH] better installation method --- tasks/configure.yml | 39 +++++++++++++++++++++++ tasks/install.yml | 47 +++++++++++++++++++--------- tasks/main.yml | 60 ++---------------------------------- templates/daemon.j2.json | 1 - templates/http-proxy.j2.conf | 2 -- vars/debian.yml | 2 ++ vars/redhat.yml | 3 ++ 7 files changed, 79 insertions(+), 75 deletions(-) create mode 100644 tasks/configure.yml delete mode 100644 templates/daemon.j2.json delete mode 100644 templates/http-proxy.j2.conf diff --git a/tasks/configure.yml b/tasks/configure.yml new file mode 100644 index 0000000..97386ac --- /dev/null +++ b/tasks/configure.yml @@ -0,0 +1,39 @@ +--- +- name: ensure needed directories are present + file: + path: "{{ item }}" + state: directory + with_items: + - /etc/docker + - /etc/systemd/system + +- name: ensure daemon config file is present + template: + content: | + {{ docker_json | to_nice_json(indent=2) }} + dest: /etc/docker/daemon.json + notify: restart docker + +- name: create directory for proxy file + file: + path: /etc/systemd/system/docker.service.d + state: directory + when: docker_proxy + +- name: create http-proxy.conf + template: + content: | + # {{ ansible_managed }} + [Service] + Environment="HTTP_PROXY={{ docker_http_proxy }}" "HTTPS_PROXY={{ docker_https_proxy }}" "NO_PROXY={{ docker_no_proxy }}" + dest: /etc/systemd/system/docker.service.d/http-proxy.conf + notify: restart docker + when: docker_proxy + +- name: ensure unit file is present & up to date + template: + src: docker.j2.service + dest: /etc/systemd/system/docker.service + notify: restart docker + + diff --git a/tasks/install.yml b/tasks/install.yml index 89943c7..007912f 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -1,17 +1,36 @@ --- -- name: Compose md5 checksum - set_fact: - __docker_setup_script_checksum: "md5:{{ docker_setup_script_md5_sum }}" - when: docker_setup_script_md5_sum != "" +- name: Install system dependencies + package: + name: "{{ item }}" + state: present + register: _dependencies_install + retries: 2 + until: _dependencies_install | success + with_items: "{{ docker_dependencies }}" + +- name: Remove old versions + package: + name: "{{ item }}" + state: absent + with_items: + - lxc-docker + - docker-engine + +- name: Install docker + package: + name: "{{ docker_package | default('docker-ce') }}" + state: present + update_cache: yes + register: __ret + retries: 10 + until: __ret is succeeded + notify: + - restart docker + +- name: ensure docker-py module is installed + pip: + name: docker-py + version: 1.9.0 + when: dockerpy -- name: Download docker setup script for desired version - get_url: - url: "{{ docker_setup_script_url }}" - dest: "/tmp/docker-setup.sh" - checksum: "{{ __docker_setup_script_checksum|default(omit) }}" - mode: 0755 -- name: Execute docker setup script - shell: "/tmp/docker-setup.sh" - tags: - - skip_ansible_lint diff --git a/tasks/main.yml b/tasks/main.yml index 117ff3b..b0374b2 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -7,65 +7,9 @@ - include: preflight.yml -- name: ensure docker dependencies are installed - package: - name: "{{ item }}" - state: present - with_items: "{{ docker_dependencies }}" +- include: install.yml -- name: check if docker is installed - command: which dockerd - register: which_dockerd - changed_when: False - ignore_errors: yes - -- include: "install.yml" - when: docker_upgrade or (which_dockerd | failed) - -- name: ensure config folder is present - file: - path: /etc/docker - state: directory - -- name: ensure docker-py module is installed - pip: - name: docker-py - version: 1.9.0 - when: dockerpy - -- name: create directory for proxy file - file: - path: /etc/systemd/system/docker.service.d - state: directory - when: docker_proxy - -- name: create http-proxy.conf - template: - src: http-proxy.j2.conf - dest: /etc/systemd/system/docker.service.d/http-proxy.conf - notify: - - reload unit - - restart docker - when: docker_proxy - -- name: ensure daemon config file is present - template: - src: daemon.j2.json - dest: /etc/docker/daemon.json - notify: - - restart docker - -- name: ensure unit file folder is present - file: - path: /etc/systemd/system - state: directory - -- name: ensure unit file is present & up to date - template: - src: docker.j2.service - dest: /etc/systemd/system/docker.service - notify: - - restart docker +- include: configure.yml - name: ensure starts on system boot systemd: diff --git a/templates/daemon.j2.json b/templates/daemon.j2.json deleted file mode 100644 index 55005d6..0000000 --- a/templates/daemon.j2.json +++ /dev/null @@ -1 +0,0 @@ -{{ docker_json | to_nice_json(indent=2) }} diff --git a/templates/http-proxy.j2.conf b/templates/http-proxy.j2.conf deleted file mode 100644 index a869ecc..0000000 --- a/templates/http-proxy.j2.conf +++ /dev/null @@ -1,2 +0,0 @@ -[Service] -Environment="HTTP_PROXY={{ docker_http_proxy }}" "HTTPS_PROXY={{ docker_https_proxy }}" "NO_PROXY={{ docker_no_proxy }}" \ No newline at end of file diff --git a/vars/debian.yml b/vars/debian.yml index 346f1ec..607c430 100644 --- a/vars/debian.yml +++ b/vars/debian.yml @@ -1,3 +1,5 @@ docker_dependencies: - apt-transport-https - ca-certificates + - software-properties-common + - python-pip diff --git a/vars/redhat.yml b/vars/redhat.yml index f2aa53b..9fada07 100644 --- a/vars/redhat.yml +++ b/vars/redhat.yml @@ -1,3 +1,6 @@ docker_dependencies: - ca-certificates - yum-utils + - epel-release + - e2fsprogs + - python2-pip