aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclyhtsuriva <aimeric@adjutor.xyz>2025-03-07 21:02:34 +0100
committerclyhtsuriva <aimeric@adjutor.xyz>2025-03-07 21:02:34 +0100
commit29faea7843ffa00ebd1b9618ac57e3f949775caf (patch)
tree4013cabb32529d3a1884e8a2a27f6ea28e549d32
parent885aa73ca70a9fc5b8f3b77b5cf4476554d1415a (diff)
ansible: Add tasks to clone docker subfolder in docker role
-rw-r--r--ansible/roles/docker/tasks/clone_docker_subfolder.yml43
-rw-r--r--ansible/roles/docker/tasks/install_docker.yml44
-rw-r--r--ansible/roles/docker/tasks/main.yml45
3 files changed, 91 insertions, 41 deletions
diff --git a/ansible/roles/docker/tasks/clone_docker_subfolder.yml b/ansible/roles/docker/tasks/clone_docker_subfolder.yml
new file mode 100644
index 0000000..772e551
--- /dev/null
+++ b/ansible/roles/docker/tasks/clone_docker_subfolder.yml
@@ -0,0 +1,43 @@
+---
+- name: Ensure Git is installed
+ ansible.builtin.package:
+ name: git
+ state: present
+
+- name: Ensure repository is cloned
+ ansible.builtin.git:
+ # Using the mirror, as git.adjutor.xyz is a dumb http
+ repo: "https://github.com/clyhtsuriva/homelab-iac__mirror.git"
+ dest: "/opt/homelab-iac"
+ version: master
+ depth: 1
+ clone: true
+ update: false
+ bare: false
+
+- name: Check if sparse checkout is already enabled
+ ansible.builtin.command:
+ cmd: git config core.sparseCheckout
+ chdir: "/opt/homelab-iac"
+ register: sparse_checkout_status
+ ignore_errors: true
+ changed_when: false
+
+- name: Enable sparse checkout (cone mode) if not already enabled
+ ansible.builtin.command:
+ cmd: git sparse-checkout init --cone
+ chdir: "/opt/homelab-iac"
+ when: sparse_checkout_status.rc != 0
+
+- name: Check if the sparse checkout directory is already set
+ ansible.builtin.command:
+ cmd: git sparse-checkout list
+ chdir: "/opt/homelab-iac"
+ register: sparse_checkout_list
+ changed_when: false
+
+- name: Set the sparse checkout path if not already set
+ ansible.builtin.command:
+ cmd: git sparse-checkout set docker
+ chdir: "/opt/homelab-iac"
+ when: "'docker' not in sparse_checkout_list.stdout"
diff --git a/ansible/roles/docker/tasks/install_docker.yml b/ansible/roles/docker/tasks/install_docker.yml
new file mode 100644
index 0000000..37d9b4d
--- /dev/null
+++ b/ansible/roles/docker/tasks/install_docker.yml
@@ -0,0 +1,44 @@
+---
+- name: Set Docker repository variables based on OS
+ ansible.builtin.set_fact:
+ docker_repo: "{{ docker_repos[ansible_distribution] }}"
+ docker_gpg_key_url: "{{ docker_gpg_keys[ansible_distribution] }}"
+
+- 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 }} {{ ansible_distribution_release }} 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
+...
diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml
index 37d9b4d..6f14f98 100644
--- a/ansible/roles/docker/tasks/main.yml
+++ b/ansible/roles/docker/tasks/main.yml
@@ -1,44 +1,7 @@
---
-- name: Set Docker repository variables based on OS
- ansible.builtin.set_fact:
- docker_repo: "{{ docker_repos[ansible_distribution] }}"
- docker_gpg_key_url: "{{ docker_gpg_keys[ansible_distribution] }}"
+- name: Install Docker
+ ansible.builtin.include_tasks: install_docker.yml
-- 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 }} {{ ansible_distribution_release }} 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
+- name: Clone the Docker subfolder
+ ansible.builtin.include_tasks: clone_docker_subfolder.yml
...