On 17/09/22 21:22, John Kennedy wrote:
On Sat, Sep 10, 2022 at 10:52:01AM +0200, Guido Falsi wrote:
Since rc.conf is just a shell script I'd like to be able to set hostname
dynamically.
AFAIK, not a shell-script (although variables are set in that syntax).
I'm sure about this, rc.conf is sourced through the shell. So it is a
shell script.
You can verify this by checking the load_rc_config() function in
/etc/rc.subr which runs (beyond a lot of other things):
. /etc/rc.conf
I was wrong about vm-bhyve machine configuration file, which is a simple
key/value pair file.
I wasn't trying to do exactly what you are, but one thing I did was set the
MAC address as one of the bhyve options:
...
-s 5,virtio-net,tap2,mac=00:01:02:03:04:05
...
(Changed the MAC address in the example, but pick a safe one for your setup)
Should be able to provide your own rc.d configuration file that does
something like do a switch on MAC and call the hostname script directly.
I already succeeded by adding "-e bhyve_vm_name=${_name}" (where _name
contains the name of the vm) to bhyveload arguments, then reading it
with kenv from rc.conf:
hostname="$(/bin/kenv bhyve_vm_name).internal.vms"
Works like a charm.
--
Guido Falsi <[email protected]>