mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
b6a4776008
It prevents the home directory for the new users to be hidden by late mount of the home directory
68 lines
1.3 KiB
Bash
Executable file
68 lines
1.3 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
|
|
# PROVIDE: nuageinit
|
|
# REQUIRE: mountcritlocal zfs
|
|
# BEFORE: NETWORKING
|
|
# KEYWORD: firstboot
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="nuageinit"
|
|
desc="Limited Cloud Init configuration"
|
|
start_cmd="nuageinit_start"
|
|
stop_cmd=":"
|
|
rcvar="nuageinit_enable"
|
|
|
|
nuageinit_start()
|
|
{
|
|
local citype
|
|
# detect cloud init provider
|
|
# according to the specification of the config drive
|
|
# it either formatted in vfat or iso9660 and labeled
|
|
# config-2
|
|
for f in iso9660 msdosfs; do
|
|
drive="/dev/$f/[cC][oO][nN][fF][iI][gG]-2"
|
|
if [ -e $drive ]; then
|
|
citype=config-2
|
|
break
|
|
fi
|
|
drive="/dev/$f/[cC][iI][dD][aA][tT][aA]"
|
|
if [ -e $drive ]; then
|
|
citype=nocloud
|
|
break
|
|
fi
|
|
unset drive
|
|
done
|
|
if [ -z "$drive" ]; then
|
|
# try to detect networked based instance
|
|
err 1 "Impossible to find a cloud init provider"
|
|
fi
|
|
mkdir -p /media/nuageinit
|
|
fs=$(fstyp $drive)
|
|
mount -t $fs $drive /media/nuageinit
|
|
# according to the specification, the content is either
|
|
# in the openstack or ec2 directory
|
|
case "$citype" in
|
|
config-2)
|
|
for d in openstack ec2; do
|
|
dir=/media/nuageinit/$d/latest
|
|
if [ -d $dir ]; then
|
|
/usr/libexec/nuageinit $dir $citype
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
nocloud)
|
|
/usr/libexec/nuageinit /media/nuageinit $citype
|
|
;;
|
|
esac
|
|
if [ -n "$drive" ]; then
|
|
umount /media/nuageinit
|
|
fi
|
|
rmdir /media/nuageinit
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|