diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2026-05-17 13:35:43 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2026-05-17 19:32:16 +0300 |
| commit | b38e910899bad2d6ae2049b599dcdd525420c53d (patch) | |
| tree | c6b277aafe1e6e278368dc5ca25a4acd624b20d2 /roles/jails | |
| parent | c1a39b7e43bed135cb1832b2b5da7c82bf7a4c78 (diff) | |
Fix postgres
Diffstat (limited to 'roles/jails')
| -rw-r--r-- | roles/jails/01_ingress/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/jails/02_postgres/handlers/main.yml | 4 | ||||
| -rw-r--r-- | roles/jails/02_postgres/tasks/main.yml | 21 | ||||
| -rw-r--r-- | roles/jails/20_packager/defaults/main.yml | 22 | ||||
| -rw-r--r-- | roles/jails/20_packager/tasks/main.yml | 15 | ||||
| -rw-r--r-- | roles/jails/20_packager/templates/etc_crontab | 5 | ||||
| -rw-r--r-- | roles/jails/20_packager/templates/usr_local_bin_build_packages.sh | 26 | ||||
| -rw-r--r-- | roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf | 18 |
8 files changed, 108 insertions, 4 deletions
diff --git a/roles/jails/01_ingress/defaults/main.yml b/roles/jails/01_ingress/defaults/main.yml index f6d5aa4..6b95ef9 100644 --- a/roles/jails/01_ingress/defaults/main.yml +++ b/roles/jails/01_ingress/defaults/main.yml @@ -15,6 +15,7 @@ ingress_routes: - { host: immich.jan.systems, ip: 192.168.3.3, port: 2283 } - { host: plex.jan.systems, jail: plex, port: 32400, presets: [streaming] } - { host: komga.jan.systems, jail: komga, port: 25600 } + - { host: ports.jan.systems, jail: packager } cert_domains: - "jan.systems" diff --git a/roles/jails/02_postgres/handlers/main.yml b/roles/jails/02_postgres/handlers/main.yml index 29064ba..b4762b2 100644 --- a/roles/jails/02_postgres/handlers/main.yml +++ b/roles/jails/02_postgres/handlers/main.yml @@ -1,4 +1,4 @@ -- name: Restart postgresql +- name: Reload postgresql service: name: postgresql - state: restarted + state: reloaded diff --git a/roles/jails/02_postgres/tasks/main.yml b/roles/jails/02_postgres/tasks/main.yml index 226e734..81d357a 100644 --- a/roles/jails/02_postgres/tasks/main.yml +++ b/roles/jails/02_postgres/tasks/main.yml @@ -7,6 +7,15 @@ path: /var/db/postgres/data18/PG_VERSION register: _pg_data +- name: Set postgres data directory ownership + file: + path: /var/db/postgres + state: directory + owner: postgres + group: postgres + mode: "0755" + when: not _pg_data.stat.exists + - name: Initialize database shell: /usr/local/etc/rc.d/postgresql initdb when: not _pg_data.stat.exists @@ -16,14 +25,22 @@ path: /var/db/postgres/data18/pg_hba.conf line: "host all all {{ jail_lan_cidr }} scram-sha-256" regexp: "^host.*all.*all.*scram-sha-256" - notify: Restart postgresql + notify: Reload postgresql - name: Listen on all interfaces lineinfile: path: /var/db/postgres/data18/postgresql.conf line: "listen_addresses = '*'" regexp: "^listen_addresses" - notify: Restart postgresql + notify: Reload postgresql + +- name: Start postgres + service: + name: postgresql + state: started + +- name: Flush handlers + meta: flush_handlers - import_role: name: jail diff --git a/roles/jails/20_packager/defaults/main.yml b/roles/jails/20_packager/defaults/main.yml new file mode 100644 index 0000000..e9d0f26 --- /dev/null +++ b/roles/jails/20_packager/defaults/main.yml @@ -0,0 +1,22 @@ +userland: "15.0-RELEASE" + +pkg: + - nginx + +nullfs: + - src: /usr/local/my-ports + dst: /usr/local/my-ports + - src: /usr/ports + dst: /usr/ports + +files: + - src: usr_local_etc_nginx_nginx.conf + dest: /usr/local/etc/nginx/nginx.conf + - src: usr_local_bin_build_packages.sh + dest: /usr/local/bin/build-packages + mode: "0755" + - src: etc_crontab + dest: /etc/crontab + +services: + - nginx diff --git a/roles/jails/20_packager/tasks/main.yml b/roles/jails/20_packager/tasks/main.yml new file mode 100644 index 0000000..e1a44e1 --- /dev/null +++ b/roles/jails/20_packager/tasks/main.yml @@ -0,0 +1,15 @@ +- import_role: + name: jail + tasks_from: jail_setup + +- name: Create packages output directory + file: + path: /usr/local/packages + state: directory + owner: root + group: wheel + mode: "0755" + +- import_role: + name: jail + tasks_from: jail_launch diff --git a/roles/jails/20_packager/templates/etc_crontab b/roles/jails/20_packager/templates/etc_crontab new file mode 100644 index 0000000..ed18a07 --- /dev/null +++ b/roles/jails/20_packager/templates/etc_crontab @@ -0,0 +1,5 @@ +SHELL=/bin/sh +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin + +# Build packages every hour +0 * * * * root /usr/local/bin/build-packages >> /var/log/build-packages.log 2>&1 diff --git a/roles/jails/20_packager/templates/usr_local_bin_build_packages.sh b/roles/jails/20_packager/templates/usr_local_bin_build_packages.sh new file mode 100644 index 0000000..b4d5ea6 --- /dev/null +++ b/roles/jails/20_packager/templates/usr_local_bin_build_packages.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# Build all ports in /usr/local/my-ports, skip already-built packages. +set -eu + +PORTS_DIR="/usr/local/my-ports" +PKG_DIR="/usr/local/packages" + +for port_dir in "${PORTS_DIR}"/*/; do + [ -f "${port_dir}/Makefile" ] || continue + + port_name=$(make -C "${port_dir}" -V PKGNAME) + pkg_file="${PKG_DIR}/All/${port_name}.pkg" + + if [ -f "${pkg_file}" ]; then + echo "SKIP ${port_name} (already built)" + continue + fi + + echo "BUILD ${port_name}" + make -C "${port_dir}" clean package PACKAGES="${PKG_DIR}" BATCH=yes + make -C "${port_dir}" clean +done + +# Rebuild the repository catalog +pkg repo "${PKG_DIR}" +echo "Done." diff --git a/roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf b/roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf new file mode 100644 index 0000000..0d140ef --- /dev/null +++ b/roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf @@ -0,0 +1,18 @@ +worker_processes 1; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + sendfile on; + + server { + listen 80; + server_name _; + root /usr/local/packages; + autoindex on; + } +} |
