Using FreeBSD's sysrc and serving tftp resources
TIL about sysrc(8)
The sysrc
tool is very handy for administering FreeBSD hosts. I've never shied away from vim /etc/rc.conf
(though really emacs /etc/rc.conf
for tidy editing, I'm an Emacser) so its not a tool that would have been sought out in my case. That said, any programmatic access to the system configuration is always welcomed with open arms.
Nevertheless, having more tools in the pragmatic belt makes for a better belt – as long as it makes things more practical and pragmatic in approach. In my case, I wanted to setup a tFTP server to allow me to install a fresh image on my network hardware. They require a tftp://$serverip/junos/$release_blob.tgz
URL to load themselves up from and this means.. well that you need a tFTP server.
So, to set up the server we'll need have inetd
start it and then start (or restart) inetd:
# Enable inetd services
sysrc inetd_enable=YES
# Configure tFTP to start (by inetd)
sed -i '' -E 's/#(tftp.*udp[[:blank:]])/\1/' /etc/inetd.conf
# Start it up!
service inetd start
My host uses ZFS as its root filesystem, so I also added a filesystem where /tftpboot
lives:
zfs create -o mountpoint=/tftpboot $rootfs/tftpboot
With that, you can place files in /tftpboot
that'll be retrievable by clients. Neat & simple.