--- - name: gather os specific variables include_vars: "{{ item }}" with_first_found: - files: - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version|lower|replace('/', '_') }}.yml" - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}.yml" - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml" - "{{ ansible_distribution|lower }}.yml" - "{{ ansible_os_family|lower }}.yml" - defaults.yml paths: - ../vars skip: true - name: check for minimum kernel version fail: msg: > docker requires a minimum kernel version of {{ docker_kernel_min_version }} on {{ ansible_distribution }}-{{ ansible_distribution_version }} when: (ansible_os_family != "CoreOS") and (ansible_kernel|version_compare(docker_kernel_min_version, "<")) - name: ensure docker repository public key is installed action: "{{ docker_repo_key_info.pkg_key }}" args: id: "{{item}}" keyserver: "{{docker_repo_key_info.keyserver}}" state: present register: keyserver_task_result until: keyserver_task_result|success retries: 4 delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ docker_repo_key_info.repo_keys }}" when: ansible_os_family != "CoreOS" - name: ensure docker repository is enabled action: "{{ docker_repo_info.pkg_repo }}" args: repo: "{{item}}" state: present with_items: "{{ docker_repo_info.repos }}" when: (ansible_os_family != "CoreOS") and (docker_repo_info.repos|length > 0) - name: Configure docker repository on RedHat/CentOS copy: src: "rh_docker.repo" dest: "/etc/yum.repos.d/docker.repo" when: ansible_distribution in ["CentOS","RedHat"] and ansible_distribution_major_version >= 7 - name: ensure docker packages are installed action: "{{ docker_package_info.pkg_mgr }}" args: pkg: "{{item.name}}" force: "{{item.force|default(omit)}}" state: present register: docker_task_result until: docker_task_result|success retries: 4 delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ docker_package_info.pkgs }}" when: (ansible_os_family != "CoreOS") and (docker_package_info.pkgs|length > 0) - name: allow for proxies on systems using systemd include: systemd-proxies.yml when: ansible_service_mgr == "systemd" and (http_proxy is defined or https_proxy is defined or no_proxy is defined) - name: Write docker.service systemd file template: src: systemd-docker.service.j2 dest: /etc/systemd/system/docker.service register: docker_service_file notify: restart docker when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS" - name: Set docker proxy variables for non-systemd installs template: src: docker.j2 dest: /etc/default/docker notify: restart docker when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" and (http_proxy is defined or https_proxy is defined or no_proxy is defined) - meta: flush_handlers - name: ensure docker service is started and enabled service: name: "{{ item }}" enabled: yes state: started with_items: - docker