aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/docker
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/roles/docker')
-rw-r--r--ansible/roles/docker/defaults/main.yml15
-rw-r--r--ansible/roles/docker/handlers/main.yml7
-rw-r--r--ansible/roles/docker/tasks/main.yml39
3 files changed, 61 insertions, 0 deletions
diff --git a/ansible/roles/docker/defaults/main.yml b/ansible/roles/docker/defaults/main.yml
new file mode 100644
index 0000000..e4340e4
--- /dev/null
+++ b/ansible/roles/docker/defaults/main.yml
@@ -0,0 +1,15 @@
+---
+docker_repo: "https://download.docker.com/linux/debian"
+docker_gpg_key: "https://download.docker.com/linux/debian/gpg"
+
+docker_packages:
+ - docker-ce
+ - docker-ce-cli
+ - containerd.io
+ - docker-buildx-plugin
+ - docker-compose-plugin
+
+docker_dependencies:
+ - ca-certificates
+ - gpg
+...
diff --git a/ansible/roles/docker/handlers/main.yml b/ansible/roles/docker/handlers/main.yml
new file mode 100644
index 0000000..c0f39d9
--- /dev/null
+++ b/ansible/roles/docker/handlers/main.yml
@@ -0,0 +1,7 @@
+---
+- name: Restart Docker
+ ansible.builtin.systemd:
+ name: docker
+ state: restarted
+ enabled: true
+...
diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml
new file mode 100644
index 0000000..b85e0e1
--- /dev/null
+++ b/ansible/roles/docker/tasks/main.yml
@@ -0,0 +1,39 @@
+---
+- name: Install required dependencies
+ ansible.builtin.apt:
+ name: "{{ docker_dependencies }}"
+ state: present
+ update_cache: true
+
+- name: Ensure /etc/apt/keyrings directory exists
+ ansible.builtin.file:
+ path: /etc/apt/keyrings
+ state: directory
+ mode: '0755'
+
+- name: Download and add Docker GPG key
+ ansible.builtin.get_url:
+ url: "{{ docker_gpg_key_url }}"
+ dest: /etc/apt/keyrings/docker.asc
+ mode: '0644'
+
+- name: Add Docker repository
+ ansible.builtin.apt_repository:
+ repo: >-
+ deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc]
+ {{ docker_repo }} $(lsb_release -cs) stable
+ state: present
+ filename: docker
+
+- name: Install Docker packages
+ ansible.builtin.apt:
+ name: "{{ docker_packages }}"
+ state: present
+ update_cache: true
+
+- name: Ensure Docker service is started and enabled
+ ansible.builtin.systemd:
+ name: docker
+ state: started
+ enabled: true
+...