--- # Server/Borgbackup: Install and Setup Borgbackup Backup Crobjob - Default Debian Version # Variables: # - dockercompose_use_pip: boolean to use pip instead of manual download (default: false) # Detect some more host facts - name: docker - Detect architecture ansible.builtin.shell: dpkg --print-architecture register: dpkg_arch # Install docker CE - name: docker - Install docker CE APT dependencies become: yes ansible.builtin.apt: name: "{{ packages }}" state: present vars: packages: - apt-transport-https - ca-certificates - curl - gnupg2 - software-properties-common - name: docker - Add docker CE repo key become: yes ansible.builtin.apt_key: url: https://download.docker.com/linux/debian/gpg state: present # IMPORTANT: raspbian needs deb [arch=armhf] https://download.docker.com/linux/raspbian ... - name: docker - Add docker CE repo (Debian) become: yes ansible.builtin.apt_repository: repo: "deb [arch={{ dpkg_arch.stdout }}] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable" state: present when: ansible_facts['lsb']['id'] != "Raspbian" - name: docker - Add docker CE repo (Raspbian) become: yes ansible.builtin.apt_repository: repo: "deb [arch={{ dpkg_arch.stdout }}] https://download.docker.com/linux/raspbian {{ ansible_distribution_release }} stable" state: present when: ansible_facts['lsb']['id'] == "Raspbian" - name: docker - Install docker CE become: yes ansible.builtin.apt: name: docker-ce state: latest install_recommends: no update_cache: yes cache_valid_time: "3600" # Install latest release of docker-compose (using pip3) # docker only provides pre-compiled binaries for x86_64, but not for armhf/ arm64! # but ansible needs the python package anyway - name: docker-compose - Discover if ARM is used ansible.builtin.set_fact: dockercompose_use_pip: true when: ansible_architecture == "aarch64" or ansible_architecture == "armv7l" - name: docker-compose - Install x86_46 binary block: - name: docker-compose - Get version number of stable ansible.builtin.shell: | curl -s https://api.github.com/repos/docker/compose/releases/latest \ | grep tag_name \ | cut -d '"' -f 4 args: warn: false register: latest_dc_version - name: docker-compose - Download and install become: yes ansible.builtin.get_url: url: "https://github.com/docker/compose/releases/download/{{ latest_dc_version.stdout }}/docker-compose-Linux-x86_64" dest: /usr/local/bin/docker-compose force: yes # otherwise updates will not be downloaded - name: docker-compose - Make docker-compose executable become: yes ansible.builtin.file: path: /usr/local/bin/docker-compose mode: 0755 when: dockercompose_use_pip == false and ansible_architecture == "x86_64" - name: docker-compose - Install python package block: - name: docker-compose - Install requirements become: yes ansible.builtin.apt: name: "{{ packages }}" state: present vars: packages: - python3-pip - python3-setuptools - name: docker-compose - Install using pip3 become: yes ansible.builtin.pip: name: docker-compose executable: pip3 when: dockercompose_use_pip == true