From 1b36515cce20a453dfebb701f288c6177377d235 Mon Sep 17 00:00:00 2001 From: SeAndersonT Date: Tue, 5 Aug 2025 14:36:52 -0500 Subject: [PATCH] Added roles and playbooks to install spoolman, and changed install pgdb and create network roles to incorperate variables --- inventory | 3 + playbooks/install_spoolman/site.yml | 20 +++++ roles/configure_network/tasks/main.yml | 3 +- roles/install_gitea/tasks/.main.yml.swp | Bin 12288 -> 0 bytes roles/install_pgdb/tasks/main.yml | 35 +++++--- roles/install_podman/tasks/main.yml | 7 +- roles/install_spoolman/tasks/main.yml | 80 ++++++++++++++++++ .../install_spoolman/templates/prometheus.j2 | 7 ++ 8 files changed, 139 insertions(+), 16 deletions(-) create mode 100644 playbooks/install_spoolman/site.yml delete mode 100644 roles/install_gitea/tasks/.main.yml.swp create mode 100644 roles/install_spoolman/tasks/main.yml create mode 100644 roles/install_spoolman/templates/prometheus.j2 diff --git a/inventory b/inventory index a24f985..fe973b0 100644 --- a/inventory +++ b/inventory @@ -38,3 +38,6 @@ youtube=https://www.youtube.com/seandersontech [gold_leader] sith.seandersontech.com # goldsquad-1.seandersontech.com + +[spoolman] +spoolman.seandersontech.com diff --git a/playbooks/install_spoolman/site.yml b/playbooks/install_spoolman/site.yml new file mode 100644 index 0000000..b3a93ab --- /dev/null +++ b/playbooks/install_spoolman/site.yml @@ -0,0 +1,20 @@ +--- +- name: Configure and install spoolman + hosts: spoolman + become: true + vars: + app: spoolman + user: seandersont + podman_network: spoolman-net + spoolman_dir: spoolman_data + database_dir: spoolman_pgdb + prometheus_config_dir: spoolman_prometheus + prometheus_config: /var/lib/containers/storage/volumes/spoolman_prometheus/prometheus.yml + prometheus_dir: spoolman_prometheus_data + grafana_dir: spoolman_grafana_data + roles: + - install_podman + - install_pgdb + - configure_network + - install_spoolman +... diff --git a/roles/configure_network/tasks/main.yml b/roles/configure_network/tasks/main.yml index 964aa10..582e74b 100644 --- a/roles/configure_network/tasks/main.yml +++ b/roles/configure_network/tasks/main.yml @@ -1,5 +1,6 @@ --- - name: Create a podman network containers.podman.podman_network: - name: gitea-net +# name: gitea-net + name: '{{ podman_network }}' become: true diff --git a/roles/install_gitea/tasks/.main.yml.swp b/roles/install_gitea/tasks/.main.yml.swp deleted file mode 100644 index 8a2e3932bf1e6144acfce217dc53b5fb148b8c17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2J8u*_6vxd)R9xN#5)Ec~G-!4<3D1!z5)y?V1rSL<2wjc5JI-d58GG<}0*iQb zR5W}7J^&>WloSX)01bkU5>X;VL&4uOv&)j)h5BBOrN3uvpJN~Y#x7QS+N~>d^Zayk zjG^pg?9Ihb%Tq7*Z=Rps&vGeLBu%cBb)zFoB!ykctuW0Y57}91c62)IbZ=BkClBuR)7DSV?7nXl`!B45q@RK%*;OOxTL>757=fnO0Q?6P-i8=Dv( zYdN!njRSno?xkOO&=?UQ0z`la5CI}U1c(3;AOin00yf*k?qg4X)%!YBKR2y=)=hd4 z0U|&IhyW2F0z`la5CI}U1c(3;AOinE0wQAU?pDSQ|Bc}B|9}7Y|F<2Cy@Q@YkD-T9 z0Zl_Eprg=UXfyP6J7X`QN05L{K|Zt(+5)}b#@G|+0VJR!&@SjR*8B*)g`PvtphwUe z)P~MOCm|Qx7sU7hdJVmTs1N}nKm>>Y5g-CYfCvzQKbHVUkxC$oHVU{kg=DS=>9kh5 zmyJXJ)>oPb&dXRCG3OWwnQ9ff*Nt#yGE&ew*zgPAu|y z^ImRc8U@Vbm2nxy4;Nk=@IuANMs^Xoa#bkAI@LQ9$z@R_wu#`o(z0?8)%Ce5sra9| z$K!VfZ;i>q>ZL3Kq%%f#cxiHB z;p%k28}o6;=xjwRIdjWOzYQ_({O%}m!cVlM=ZCV(b^)ZJug>O(%#f&wSOznEW7JVRiD7ha>L~T1B)bhq~

c9i>9mk8m*X;~t$g$j+BT7inO_JkMj_0g@e<`2YX_ diff --git a/roles/install_pgdb/tasks/main.yml b/roles/install_pgdb/tasks/main.yml index 1d760c1..9b9acfb 100644 --- a/roles/install_pgdb/tasks/main.yml +++ b/roles/install_pgdb/tasks/main.yml @@ -1,19 +1,32 @@ --- +- name: Create container volumes + containers.podman.podman_volume: + state: present + name: "{{ database_dir }}" + - name: Create postgres container containers.podman.podman_container: - name: gitea-pgdb - user: 1000 +# name: gitea-pgdb + name: "{{ app }}-pgdb" +# user: 1000 state: quadlet - network: gitea-net +# network: gitea-net + network: "{{ podman_network }}" image: docker.io/postgres:latest tty: true shm_size: 128mb - volume: - - /home/seandersont/gitea_db:/var/lib/postgresql/data + volume: +# - /home/seandersont/gitea_db:/var/lib/postgresql/data + - "{{ database_dir }}:/var/lib/postgresql/data" + security_opt: "label=disable" env: - POSTGRES_USER: "gitea" - POSTGRES_PASSWORD: "MicrophoneExtensionBalb0a" - POSTGRES_DB: "gitea" + POSTGRES_USER: "{{ app }}" + POSTGRES_PASSWORD: "mcGdDizPrFFv9SS4c55m" + POSTGRES_DB: "{{ app }}" + +# POSTGRES_USER: "gitea" +# POSTGRES_PASSWORD: "MicrophoneExtensionBalb0a" +# POSTGRES_DB: "gitea" quadlet_options: - "AutoUpdate=registry" - | @@ -21,10 +34,10 @@ WantedBy=default.target -- name: start gitea-app systemd unit +- name: Start postgres systemd unit ansible.builtin.systemd: - name: gitea-pgdb + name: "{{ app }}-pgdb" +# name: gitea-pgdb daemon_reload: true state: started enabled: true - diff --git a/roles/install_podman/tasks/main.yml b/roles/install_podman/tasks/main.yml index b73cbf4..b8e4d67 100644 --- a/roles/install_podman/tasks/main.yml +++ b/roles/install_podman/tasks/main.yml @@ -1,6 +1,5 @@ --- -- name: install podman - dnf: +- name: Install podman + ansible.builtin.dnf: name: podman - state: latest - + state: present diff --git a/roles/install_spoolman/tasks/main.yml b/roles/install_spoolman/tasks/main.yml new file mode 100644 index 0000000..ffa3fc5 --- /dev/null +++ b/roles/install_spoolman/tasks/main.yml @@ -0,0 +1,80 @@ +--- +- name: Create container volumes + containers.podman.podman_volume: + state: present + name: "{{ item }}" + loop: + - "{{ spoolman_dir }}" + - "{{ prometheus_dir }}" + - "{{ prometheus_config_dir }}" + - "{{ grafana_dir }}" + - "{{ database_dir }}" + +- name: Create Spoolman container + containers.podman.podman_container: + name: spoolman + state: quadlet + network: "{{ podman_network }}" + image: ghcr.io/donkie/spoolman:latest + restart_policy: "on-failure" + volumes: "{{ spoolman_dir }}:/home/app/.local/share/spoolman" + ports: "80:8000" + security_opt: "label=disable" + env: + TZ: US/Central + SPOOLMAN_DB_TYPE: postgres + SPOOLMAN_DB_HOST: "{{ app }}-pgdb" + SPOOLMAN_DB_PORT: "5432" + SPOOLMAN_DB_NAME: "{{ app }}" + SPOOLMAN_DB_USERNAME: "{{ app }}" + SPOOLMAN_DB_PASSWORD: "mcGdDizPrFFv9SS4c55m" + SPOOLMAN_METRICS_ENABLED: true + +- name: Create prometheus container + containers.podman.podman_container: + name: prometheus + state: quadlet + network: "{{ podman_network }}" + image: docker.io/prom/prometheus:latest + volumes: + - "{{ prometheus_config }}:/etc/prometheus/prometheus.yml" + - "{{ prometheus_dir }}:/prometheus" + ports: "9091:9090" + security_opt: "label=disable" + quadlet_options: + - "AutoUpdate=registry" + - | + [Install] + WantedBy=default.target + +- name: Create Prometheus config file + ansible.builtin.template: + mode: "0666" + src: prometheus.j2 + dest: "{{ prometheus_config }}" + +- name: Create Grafana container + containers.podman.podman_container: + name: grafana + state: quadlet + network: "{{ podman_network }}" + image: grafana/grafana:latest + security_opt: "label=disable" + env: + GF_SECURITY_ADMIN_USER: admin + GF_SECURITY_ADMIN_PASSWORD: admin + ports: + - "3000:3000" + volume: + - "{{ grafana_dir }}:/var/lib/grafana" + +- name: Start systemd units + ansible.builtin.systemd: + name: '{{ item }}' + daemon_reload: true + state: started + enabled: true + loop: + - spoolman + - prometheus + - grafana diff --git a/roles/install_spoolman/templates/prometheus.j2 b/roles/install_spoolman/templates/prometheus.j2 new file mode 100644 index 0000000..f236e21 --- /dev/null +++ b/roles/install_spoolman/templates/prometheus.j2 @@ -0,0 +1,7 @@ +global: + scrape_interval: 15s + +scrape_configs: + - job_name: 'spoolman' + static_configs: + - targets: ['spoolman.seandersontech.com:80']