Refactored the single ansible-playbook.yml into granular roles under roles/: - packages: dnf update + package installs - directories: /opt/apps/* directory creation - sysctl: ip_forward, src_valid_mark, vm.max_map_count tuning - network: npm_internal podman network - wireguard: kernel module, wg-easy container, nftables hook patching - npm: Nginx Proxy Manager container - gitea: Gitea container - jellyfin: Jellyfin container - wazuh: cert generation + indexer/manager/dashboard containers Top-level playbook is now a role dispatcher with image pre-pull kept upfront. n8n deployment kept as commented-out guidance with an enable checklist. All variables remain in top-level vars.yml. Done by Sisyphus.
48 lines
1.2 KiB
YAML
Executable File
48 lines
1.2 KiB
YAML
Executable File
---
|
|
- hosts: internal-apps
|
|
become: true
|
|
vars_files:
|
|
- ./vars.yml
|
|
tasks:
|
|
- name: Pull images
|
|
containers.podman.podman_image:
|
|
name: "{{ item }}"
|
|
loop: "{{ images }}"
|
|
|
|
roles:
|
|
- packages
|
|
- directories
|
|
- sysctl
|
|
- network
|
|
- wireguard
|
|
- npm
|
|
- gitea
|
|
- jellyfin
|
|
- wazuh
|
|
|
|
#----N8N deployment, no GPU avail for deployment ------#
|
|
# To enable n8n:
|
|
# 1. Uncomment the n8n image in vars.yml (images list)
|
|
# 2. Uncomment the n8n directory in vars.yml (directories list)
|
|
# 3. Create roles/n8n/tasks/main.yml with the n8n container block
|
|
# 4. Add "n8n" to the roles list above
|
|
#
|
|
# - name: Deploy n8n
|
|
# containers.podman.podman_container:
|
|
# image: docker.n8n.io/n8nio/n8n
|
|
# name: n8n
|
|
# env:
|
|
# N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: true
|
|
# N8N_RUNNERS_ENABLED: true
|
|
# restart_policy: always
|
|
# recreate: true
|
|
# state: started
|
|
# volumes:
|
|
# - /opt/apps/n8n/data:/home/node/.n8n:z
|
|
# - /opt/apps/n8n/files:/files:z
|
|
# - /usr/share/zoneinfo/America/Denver:/etc/timezone:ro
|
|
# - /etc/localtime:/etc/localtime:ro
|
|
# network:
|
|
# - npm_internal
|
|
# ip: '10.10.0.35'
|