94 lines
2.2 KiB
YAML
94 lines
2.2 KiB
YAML
#- name: Check if docker is already installed
|
|
# stat:
|
|
# path: /usr/bin/docker
|
|
# register: docker_file
|
|
|
|
- name: Install Packages
|
|
# when: docker_file.stat.exists == False
|
|
package:
|
|
name:
|
|
- gpg
|
|
- gpg-agent
|
|
- python3-debian
|
|
tags: docker_repo
|
|
|
|
- name: Create apt keyrings directory
|
|
file:
|
|
path: /etc/apt/keyrings
|
|
state: directory
|
|
mode: "0755"
|
|
tags: docker_repo
|
|
|
|
- name: Add docker-key
|
|
get_url:
|
|
url: "https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}/gpg"
|
|
dest: /etc/apt/keyrings/docker.asc
|
|
mode: "0644"
|
|
tags: docker_repo
|
|
|
|
- name: Remove one-line docker-repository
|
|
file:
|
|
path: /etc/apt/sources.list.d/docker.list
|
|
state: absent
|
|
tags: docker_repo
|
|
|
|
- name: Add docker-repository
|
|
deb822_repository:
|
|
name: docker
|
|
types: deb
|
|
uris: "https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}"
|
|
suites: "{{ ansible_facts.distribution_release }}"
|
|
components: stable
|
|
signed_by: /etc/apt/keyrings/docker.asc
|
|
register: docker_repo
|
|
tags: docker_repo
|
|
|
|
- name: Update apt cache after docker-repository change
|
|
apt:
|
|
update_cache: yes
|
|
when: docker_repo.changed
|
|
tags: docker_repo
|
|
|
|
- name: Install docker
|
|
package:
|
|
name:
|
|
- docker-ce
|
|
- docker-ce-cli
|
|
- containerd.io
|
|
- docker-compose-plugin
|
|
- pass
|
|
state: latest
|
|
|
|
- name: Deploy docker-compose command to new docker compose plugin
|
|
ansible.builtin.copy:
|
|
src: docker-compose
|
|
dest: "/usr/local/bin/docker-compose"
|
|
mode: preserve
|
|
|
|
- name: Check for docker binary
|
|
ansible.builtin.stat:
|
|
path: /usr/bin/docker
|
|
register: docker_binary
|
|
tags: docker_prune
|
|
|
|
- name: Deploy docker-prune script
|
|
ansible.builtin.copy:
|
|
src: docker-prune
|
|
dest: /usr/local/sbin/docker-prune
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
when: docker_binary.stat.exists
|
|
tags: docker_prune
|
|
|
|
- name: Schedule hourly docker-prune
|
|
ansible.builtin.cron:
|
|
name: docker prune
|
|
cron_file: docker-prune
|
|
user: root
|
|
minute: "0"
|
|
job: /usr/local/sbin/docker-prune
|
|
when: docker_binary.stat.exists
|
|
tags: docker_prune
|
|
|