This reverts some changes the the "update_jailconf" function.
The reason behind this revert is that if a jail somehow has the same name as a directory, then the previous commit would have changed the directory name as well, which would break stuff.
The current code avoids all that and only replaces the necessary jail name value.
- fixed cloning of VNET bridged jails
- added support for regenerating static MAC on cloned jails
- simplified some sed commands to edit cloned jail.conf file
Tested with bridged VNET, VNET, and loopback jails
Current implementation allows for cloning jails that were created using a static MAC.
Also removed some unnecessary sed strings. These were simplified.
This commit will generate a static MAC address for each jail, based on the name of the jail. It will use the first half (xx:xx:xx) of the host MAC to avoid network clashes, and generate a random HEX string from the hashed name of the jail. It will then add that random 5 character HEX string in MAC format, and add an "a" and "b" for the host and jail respectively.
This way a jail can retain it's MAC ID even if it is deleted and reinstalled, as long as the same name is retained.
Hierarchical jails inherit the parent jail's permissions and don't support setting devfs_ruleset to a non-zero value. This update adds a check to determine if the script is running inside a jail. If so, it sets devfs_ruleset to 0 to comply with this constraint.
Accross the code, release names are checked against some variation of
-BETAx / -RCx which are inconsistent in the range of accepted values for
`x`.
As a consequence, some commands cannot be successfuly run while they
are valid, e.g. `bastille create test 14.0-RC4 10.0.0.2` is rejected
because only `*-RC1` and `*-RC2` are accepted as a RC release name.
Find out these lists of specific BETA and RC patterns and adjust them to
allow any one-digit value at the end. We generaly do up to 4 BETA / RC
releases, so a one digit limit is probably enough for the time being.
Removed -q from kldstat in function configure_zfs().
on FreeBSD 14 (maybe earlier) this causes kldstat to return in such
a way that BastilleBSD assumes zfs is not loaded.