Added roles and playbooks to install spoolman, and changed install pgdb and create network roles to incorperate variables

This commit is contained in:
Sean Anderson 2025-08-05 14:36:52 -05:00
parent fecce13c5b
commit 1b36515cce
8 changed files with 139 additions and 16 deletions

View File

@ -38,3 +38,6 @@ youtube=https://www.youtube.com/seandersontech
[gold_leader]
sith.seandersontech.com
# goldsquad-1.seandersontech.com
[spoolman]
spoolman.seandersontech.com

View File

@ -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
...

View File

@ -1,5 +1,6 @@
---
- name: Create a podman network
containers.podman.podman_network:
name: gitea-net
# name: gitea-net
name: '{{ podman_network }}'
become: true

View File

@ -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

View File

@ -1,6 +1,5 @@
---
- name: install podman
dnf:
- name: Install podman
ansible.builtin.dnf:
name: podman
state: latest
state: present

View File

@ -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

View File

@ -0,0 +1,7 @@
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'spoolman'
static_configs:
- targets: ['spoolman.seandersontech.com:80']