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 8a2e393..0000000 Binary files a/roles/install_gitea/tasks/.main.yml.swp and /dev/null differ 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']