RFC: support for "first boot" rc.d scripts

From: Colin Percival <cperciva_at_freebsd.org>
Date: Sun, 13 Oct 2013 15:58:23 -0700
Hi all,

I've attached a very simple patch which makes /etc/rc:

1. Skip any rc.d scripts with the "firstboot" keyword if /var/db/firstboot
does not exist,

2. If /var/db/firstboot and /var/db/firstboot-reboot exist after running rc.d
scripts, reboot.

3. Delete /var/db/firstboot (and firstboot-reboot) after the first boot.

The purpose of this is to support "run on first boot" rc.d scripts.  These can
be useful for both virtual machines and embedded systems; unlike conventional
desktops and servers, these may have a lengthy gap between "installing" and
"turning on" the system.

As examples of what such scripts could do:

* In Amazon EC2, I use a "first boot" script to download an SSH public key
from EC2 so that users can log in to newly provisioned EC2 instances.

* Now that (starting from 10.0-BETA1) it is possible to use FreeBSD Update
to update everything on EC2 instances, I'm planning on writing a script which
runs 'freebsd-update fetch install' when the system first boots, and then
reboots if there were updates installed.  (I imagine this would be useful
to other embedded / VM providers too.)

* Once packages are provided (properly) for 10.0 I'd like to allow people to
specify a list of packages they want installed onto an EC2 instance and have
them downloaded and installed when the EC2 instance launches.

I'd like to get this into HEAD in the near future in the hope that I can
convince re_at_ that this is a simple enough (and safe enough) change to merge
before 10.0-RELEASE.

Comments?

-- 
Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid

Received on Sun Oct 13 2013 - 20:59:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:42 UTC