diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2026-08-05 13:53:07 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2026-08-05 14:38:00 +0300 |
| commit | 469afb98140c2a33ecd0124381035423a2006e1e (patch) | |
| tree | c3e234437df915d47831829d3e34671b82be8ef2 /roles/jail | |
| parent | d38fe54ab035f8e3248b8e20a58abd89861833bf (diff) | |
Restructure jail ip references
Diffstat (limited to 'roles/jail')
| -rw-r--r-- | roles/jail/tasks/jail_setup.yml | 18 | ||||
| -rw-r--r-- | roles/jail/templates/jail_conf.j2 | 8 | ||||
| -rw-r--r-- | roles/jail/templates/usr_local_bin_jail_net.j2 | 23 |
3 files changed, 12 insertions, 37 deletions
diff --git a/roles/jail/tasks/jail_setup.yml b/roles/jail/tasks/jail_setup.yml index 2c8581d..aac91f7 100644 --- a/roles/jail/tasks/jail_setup.yml +++ b/roles/jail/tasks/jail_setup.yml @@ -84,21 +84,6 @@ label: "{{ item.name }}" delegate_to: "{{ jail_delegate_host }}" -- name: "Inherit mountpoint on ZFS volumes for {{ jail_name }}" - shell: | - source=$(zfs get -H -o source mountpoint {{ item.name }}) - if [ "$source" != "inherited" ] && [ "$source" != "received" ]; then - zfs unmount {{ item.name }} 2>/dev/null - zfs inherit mountpoint {{ item.name }} - echo "changed" - fi - loop: "{{ _zfs }}" - loop_control: - label: "{{ item.name }}" - register: _zfs_inherit - changed_when: "'changed' in _zfs_inherit.stdout" - delegate_to: "{{ jail_delegate_host }}" - - name: "Set ownership on ZFS volume host mountpoints for {{ jail_name }}" file: path: "/usr/local/jails/volumes/{{ item.name | basename }}" @@ -162,6 +147,7 @@ jail: name: "{{ jail_name }}" num: "{{ jail_num }}" + ip: "{{ jail_ips[jail_name] }}/{{ jail_lan_cidr | ipv4_prefixlen }}" devfs_ruleset: "{{ devfs_ruleset | default(4) }}" options: "{{ jail_conf_options | default([]) }}" exec_prestart: "{{ exec_prestart | default([]) }}" @@ -193,7 +179,7 @@ copy: content: | poudriere: { - url: "http://{{ hostvars[jail_delegate_host]['poudriere_repo_ip'] }}/packages", + url: "http://{{ jail_ips.poudriere_repo }}/packages", enabled: no, priority: 100 } diff --git a/roles/jail/templates/jail_conf.j2 b/roles/jail/templates/jail_conf.j2 index aa88049..f4243c7 100644 --- a/roles/jail/templates/jail_conf.j2 +++ b/roles/jail/templates/jail_conf.j2 @@ -16,10 +16,10 @@ exec.stop = "/bin/sh /etc/rc.shutdown"; # Networking - exec.prestart += "jail_net prestart {{ jail.num }} ${name}"; - exec.poststart += "jail_net poststart {{ jail.num }} ${name}"; - exec.prestop += "jail_net prestop {{ jail.num }} ${name}"; - exec.poststop += "jail_net poststop {{ jail.num }} ${name}"; + exec.prestart += "jail_net prestart ${name} {{ jail.num }} {{ jail.ip }}"; + exec.poststart += "jail_net poststart ${name} {{ jail.num }} {{ jail.ip }}"; + exec.prestop += "jail_net prestop ${name} {{ jail.num }} {{ jail.ip }}"; + exec.poststop += "jail_net poststop ${name} {{ jail.num }} {{ jail.ip }}"; # Custom hooks {% for cmd in jail.exec_prestart %} diff --git a/roles/jail/templates/usr_local_bin_jail_net.j2 b/roles/jail/templates/usr_local_bin_jail_net.j2 index e9873a3..e8ce462 100644 --- a/roles/jail/templates/usr_local_bin_jail_net.j2 +++ b/roles/jail/templates/usr_local_bin_jail_net.j2 @@ -1,27 +1,16 @@ #!/bin/sh # jail_net - manage jail LAN networking lifecycle -# Usage: jail_net <prestart|poststart|prestop|poststop> <jail_num> <jail_name> +# Usage: jail_net <prestart|poststart|prestop|poststop> <jail_name> <jail_num> <jail_ip_cidr> set -e STAGE="$1" -NUM="$2" -NAME="$3" +NAME="$2" +NUM="$3" +IP="$4" BRIDGE="brlan0" -LAN_BASE="{{ jail_lan_cidr | ipv4_host }}" -LAN_PREFIX="{{ jail_lan_cidr | ipv4_prefixlen }}" -LAN_OFFSET="{{ jail_lan_offset }}" -DEFAULT_ROUTE="{{ jail_lan_cidr | ipv4_nth(1 + jail_lan_offset | int) }}" - -# Compute jail IP from jail_num + offset -_nth=$(( LAN_OFFSET + NUM )) -_a=$(echo "$LAN_BASE" | cut -d. -f1) -_b=$(echo "$LAN_BASE" | cut -d. -f2) -_c=$(echo "$LAN_BASE" | cut -d. -f3) -_d=$(echo "$LAN_BASE" | cut -d. -f4) -_total=$(( (_a << 24) + (_b << 16) + (_c << 8) + _d + _nth )) -IP="$(( (_total >> 24) & 255 )).$(( (_total >> 16) & 255 )).$(( (_total >> 8) & 255 )).$(( _total & 255 ))/${LAN_PREFIX}" +DEFAULT_ROUTE="{{ jail_ips.ingress }}" # --- Cleanup functions --- @@ -121,7 +110,7 @@ case "$STAGE" in prestop) _prestop ;; poststop) _poststop ;; *) - echo "Usage: jail_net <prestart|poststart|prestop|poststop> <num> <name>" >&2 + echo "Usage: jail_net <prestart|poststart|prestop|poststop> <name> <num> <ip_cidr>" >&2 exit 1 ;; esac |
