From 3521b840ae1a4ffde3367014fad4bf328a293e53 Mon Sep 17 00:00:00 2001 From: shockrah Date: Wed, 16 Apr 2025 18:25:24 -0700 Subject: [PATCH] Seperating the roles of basic infra requirements and docker service requirements into seperate roles With this we have a working proof of concept for a proper simple docker host --- ansible/nuc.yaml | 16 ++++++++++++- .../roles/local-server-head/tasks/main.yaml | 13 +++++++++++ ansible/roles/services/tasks/main.yaml | 17 ++++++++++++++ ansible/roles/services/templates/compose.yaml | 6 +++++ ansible/roles/services/vars/main.yaml | 2 ++ ansible/scripts/pull-down-s3.sh | 23 ------------------- 6 files changed, 53 insertions(+), 24 deletions(-) create mode 100644 ansible/roles/services/tasks/main.yaml create mode 100644 ansible/roles/services/templates/compose.yaml create mode 100644 ansible/roles/services/vars/main.yaml delete mode 100644 ansible/scripts/pull-down-s3.sh diff --git a/ansible/nuc.yaml b/ansible/nuc.yaml index 82f0b35..d2994ae 100644 --- a/ansible/nuc.yaml +++ b/ansible/nuc.yaml @@ -3,5 +3,19 @@ remote_user: nigel tasks: - name: Setup basic role on nigel + tags: + - setup ansible.builtin.include_role: - name: local-server-head \ No newline at end of file + name: local-server-head + apply: + tags: + - setup + - name: Setup Docker services on nigel + tags: + - services + ansible.builtin.include_role: + name: services + apply: + become: true + tags: + - services diff --git a/ansible/roles/local-server-head/tasks/main.yaml b/ansible/roles/local-server-head/tasks/main.yaml index d53c417..bbaf64c 100644 --- a/ansible/roles/local-server-head/tasks/main.yaml +++ b/ansible/roles/local-server-head/tasks/main.yaml @@ -1,5 +1,18 @@ - name: Ensure docker components are installed + tags: + - setup ansible.builtin.include_tasks: file: ensure-docker-basic.yaml apply: become: true + tags: + - setup +- name: Ensure docker services are present and ready for configuration/usage + tags: + - services + ansible.builtin.include_tasks: + file: ensure-docker-services.yaml + apply: + become: true + tags: + - services diff --git a/ansible/roles/services/tasks/main.yaml b/ansible/roles/services/tasks/main.yaml new file mode 100644 index 0000000..b0f77f7 --- /dev/null +++ b/ansible/roles/services/tasks/main.yaml @@ -0,0 +1,17 @@ +- name: Ensure docker dir is present + ansible.builtin.file: + path: "{{ docker_compose_dir }}" + state: directory + mode: "0755" +- name: Ensure compose.yaml is present + ansible.builtin.template: + src: compose.yaml + dest: "{{ docker_compose_dir }}/compose.yaml" + mode: "0644" +- name: Apply docker compose with services + community.docker.docker_compose_v2: + project_src: "{{ docker_compose_dir }}" + register: compose_output +- name: Show output of docker compose apply + ansible.builtin.debug: + var: compose_output diff --git a/ansible/roles/services/templates/compose.yaml b/ansible/roles/services/templates/compose.yaml new file mode 100644 index 0000000..42d5259 --- /dev/null +++ b/ansible/roles/services/templates/compose.yaml @@ -0,0 +1,6 @@ +services: + health: + container_name: health + image: nginx:latest + ports: + - "{{ docker_health_port }}:80" \ No newline at end of file diff --git a/ansible/roles/services/vars/main.yaml b/ansible/roles/services/vars/main.yaml new file mode 100644 index 0000000..6ad6a46 --- /dev/null +++ b/ansible/roles/services/vars/main.yaml @@ -0,0 +1,2 @@ +docker_compose_dir: /home/nigel/compose +docker_health_port: 8080 diff --git a/ansible/scripts/pull-down-s3.sh b/ansible/scripts/pull-down-s3.sh deleted file mode 100644 index 19506d1..0000000 --- a/ansible/scripts/pull-down-s3.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -e - -bucket="$1" -s3env=/opt/nginx/s3.env - -[[ -z "$bucket" ]] && echo "No bucket selected" && exit 1 - -[[ ! -f $s3env ]] && echo "No credentials to source!" && exit 1 -source $s3env - -pull() { - aws s3 sync s3://$bucket /opt/nginx/$bucket -} - - -case $bucket in - resume.shockrah.xyz|shockrah.xyz|temper.tv) pull;; - *) echo "Invalid bucket name" && exit 1 ;; -esac - -