Newer
Older
##############################################
# variables
##############################################
# env
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
RC_SCRIPT_FILE='/etc/rc.local'
RC_BACKUP_FILE='/etc/rc.local.bak'
RC_CONF='/etc/rc.conf'
LOADER_CONF='/boot/loader.conf'
# bsd cloudinit
BSDINIT_URL='https://github.com/pellaeon/bsd-cloudinit/archive/master.tar.gz'
VERIFY_PEER='--ca-cert=/usr/local/share/certs/ca-root-nss.crt'
FETCH="fetch ${VERIFY_PEER}"
##############################################
# utils
##############################################
echo_debug() {
echo '[debug] '$1
}
echo '# Generated by bsd-cloudinit-installer '`date +'%Y/%m/%d %T'`
##############################################
# main block
##############################################
# Get freebsd version
if uname -K > /dev/null 2>&1
then
BSD_VERSION=`uname -K`
else
_BSD_VERSION=`uname -r | cut -d'-' -f 1`
BSD_VERSION=$(printf "%d%02d%03d" `echo ${_BSD_VERSION} | cut -d'.' -f 1` `echo ${_BSD_VERSION} | cut -d'.' -f 2` 0)
fi
if [ $BSDINIT_DEBUG ]
then
echo_debug "BSD_VERSION = $BSD_VERSION"
fi
# Raise unsupport error
[ "$BSD_VERSION" -lt 903000 ] && {
echo 'Oops! Your freebsd version is too old and not supported!'
exit 1
pkg install $INSTALL_PKGS
$FETCH -o - $BSDINIT_URL | tar -xzvf - -C '/root'
pip install -r '/root/bsd-cloudinit-master/requirements.txt'
touch $RC_SCRIPT_FILE
cp -pf $RC_SCRIPT_FILE $RC_BACKUP_FILE
echo_bsdinit_stamp >> $RC_SCRIPT_FILE
echo "$PYTHON /root/bsd-cloudinit-master/run.py --log-file /tmp/cloudinit.log" >> $RC_SCRIPT_FILE
echo "cp -pf $RC_BACKUP_FILE $RC_SCRIPT_FILE " >> $RC_SCRIPT_FILE
echo_bsdinit_stamp >> $LOADER_CONF
echo 'console="comconsole,vidconsole"' >> $LOADER_CONF
for i in `ifconfig -u -l`
do
case $i in
'lo0')
;;
'plip0')
;;
'pflog0')
;;
*)
echo 'ifconfig_'${i}'="DHCP"' >> $RC_CONF
break;
;;
esac
done
then
echo 'sshd_enable="YES"' >> $RC_CONF
fi
sed -i '' 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /usr/local/etc/sudoers