- name: Deploy Docker ce on Debian Based Systems
  hosts: all
  remote_user: root

  tasks:

  - meta: end_play
    when: ansible_facts['os_family'] != 'Debian'
 
  - name: "install dependencies"
    apt:
      pkg:
        - python3-pip
        - apt-transport-https

  - name: "Get docker signing key"
    block:
      - name: "Fetch docker text signing key"
        get_url:
          url: "https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }}/gpg"
          dest: "/usr/share/keyrings/docker.asc"
        register: docker_gpg_key
      - name: "De-armor docker gpg key"
        shell: gpg --no-tty --yes -o /etc/apt/keyrings/docker.gpg --dearmor "/usr/share/keyrings/docker.asc"
        when: docker_gpg_key.changed

  - name: "Add docker repo"
    apt_repository:
      repo: deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }} {{ ansible_distribution_release }} stable
      filename: docker
      update_cache: yes

  - name: "Install docker packages"
    apt:
      update_cache: yes
      pkg:
        - docker-ce
        - docker-ce-cli
        - containerd.io
        - docker-compose-plugin

  - name: "install docker-compose"
    pip:
      name: docker-compose
      executable: pip3
  
  - name: "Create traefik docker network"
    shell: docker network create --driver=bridge --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 --gateway=172.28.5.254 traefik_http
    ignore_errors: yes
