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/20_packager | |
| parent | c1a39b7e43bed135cb1832b2b5da7c82bf7a4c78 (diff) | |
Fix postgres
Diffstat (limited to 'roles/jails/20_packager')
5 files changed, 86 insertions, 0 deletions
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; + } +} |
