Date: Mon, 28 Feb 2022 16:15:45 +0100 From: FreeBSD User <freebsd@walstatt-de.de> To: FreeBSD virtualization <freebsd-virtualization@freebsd.org>, FreeBSD CURRENT <freebsd-current@freebsd.org> Subject: bastille : poudriere not working in jail: jail: jail:_set: Operation not permitted! Message-ID: <20220228161545.251fe0d8@hermann>
next in thread | raw e-mail | index | archive | help
Hello folks, we run at least two poudriere build systems on recent CURRENT boxes and one of these poudriere build systems is working within a jail - setup via FreeBSD's /etc/jail.conf and by misusing the port ezjail for copying/deploying our self-compiled jail binary. The poudriere jail uses ZFS and is, to make it short, working like a charme. Now we try to setup another poudriere, but this time the base is XigmaNAS 12.3.0.4/9009, which is based upon 12.X-RELENG, utilizing "bastille". Bastille is up to date (in terms od the XigmaNAS plugin). Following the setup we used on the native CURRENT "jailed poudriere" builder and also following this reference (for those who want to check on this) https://www.mimar.rs/blog/host-your-own-services-with-freebsd-jails-part-3-poudriere which seems quite recent and with the exception, that we use "vnet" on all of our systems for jails and so does XigmaNAS. Starting a building process via poudriere ends up with # poudriere bulk -p head -z default -j 123-amd64 -f /usr/local/etc/poudriere.d/zeit4-default.pkglist [00:00:00] Creating the reference jail... done [00:00:01] Mounting system devices for 123-amd64-head-default [00:00:01] Warning: Using packages from previously failed, or uncommitted, build: /mnt/poudriere/data/packages/123-amd64-head-default/.building [00:00:01] Mounting ports from: /mnt/poudriere/ports/head [00:00:01] Mounting packages from: /mnt/poudriere/data/packages/123-amd64-head-default [00:00:01] Mounting distfiles from: /mnt/poudriere/ports/distfiles [00:00:01] Copying /var/db/ports from: /usr/local/etc/poudriere.d/head-amd64-head-default-options [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf /etc/resolv.conf -> /mnt/poudriere/data/.m/123-amd64-head-default/ref/etc/resolv.conf [00:00:02] Starting jail 123-amd64-head-default jail: jail_set: Operation not permitted [00:00:02] Cleaning up [00:00:02] Unmounting file systems poudriere jail -l: # poudriere jail -l JAILNAME VERSION ARCH METHOD TIMESTAMP PATH 123-amd64 12.3-RELEASE amd64 url=https://download.freebsd.org/releases/a ... 3-RELEASE/ 2022-02-24 14:14:25 /mnt/poudriere/jails/123-amd64 130-amd64 13.0-RELEASE amd64 url=https://download.freebsd.org/releases/a ... 0-RELEASE/ 2022-02-24 14:11:32 /mnt/poudriere/jails/130-amd64 The jail.conf for this specific jail is as follows: [...] pulverfass-001 { devfs_ruleset = 13; enforce_statfs = 1; exec.clean; exec.consolelog = /mnt/extensions/bastille/logs/pulverfass-001_console.log; exec.start = '/bin/sh /etc/rc'; exec.stop = '/bin/sh /etc/rc.shutdown'; host.hostname = XXXXXXXXX; mount.devfs; mount.fstab = /mnt/extensions/bastille/jails/pulverfass-001/fstab; path = /mnt/extensions/bastille/jails/pulverfass-001/root; securelevel = 0; vnet; vnet.interface = e0b_bastille4; exec.prestart += "jib addm bastille4 igb0"; exec.prestart += "ifconfig e0a_bastille4 description \"vnet host interface for Bastille jail pulverfass-001\""; exec.poststop += "jib destroy bastille4"; allow.mount; allow.mount.fdescfs; allow.mount.devfs; allow.mount.tmpfs; allow.mount.nullfs; allow.mount.procfs; allow.mount.linsysfs; allow.mount.linprocfs; allow.mount.zfs; allow.chflags; allow.raw_sockets; allow.socket_af; allow.sysvipc; linux = new; exec.created += "/sbin/zfs jail ${name} BUNKER00/poudriere"; exec.start += "/sbin/zfs mount -a"; exec.poststop += "/sbin/zfs unjail BUNKER00/poudriere"; } [...] Tracking the execution of the build process by issuing poudriere -x bulk ... and examin the resulting trace doesn' tgive me any hint, the error reported above immediately occurs when the jail is about to be started: + set -u +x + jail -c persist 'name=123-amd64-head-default' 'path=/mnt/poudriere/data/.m/ \ 123-amd64-head-default/ref' 'host.hostname=basehost.local.domain' \ 'ip4.addr=127.0.0.1' 'ip6.addr=::1' allow.chflags allow.sysvipc jail: jail_set: Operation not permitted + exit_handler [...] Searching the net revealed some issues with setting IP4 and IP6 in poudriere, but those findings are dated back to 2017 and 2014 and I guess this is solved right now. The difference between our manually jail.conf driven setup and the XigmaNAS/bastille based one is, bastille uses jib/netgraph based seutups of the vnet and the ip4/ip6 is setup from rc.conf, while we use epair in the other world and the ip is setup from withing the jail definition in jail.conf. I'm out of ideas here and after two days of trial and error and trying to understand what's going on lost ... Any hints or tipps? Thanks in advance, O. Hartmann
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20220228161545.251fe0d8>