Blame tools/build-on-freebsd
|
Packit Service |
a04d08 |
#!/bin/sh
|
|
Packit Service |
a04d08 |
# Since there is no official FreeBSD port yet, we need some way of building and
|
|
Packit Service |
a04d08 |
# installing cloud-init. This script takes care of building and installing. It
|
|
Packit Service |
a04d08 |
# will optionally make a first run at the end.
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
set -eux
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
fail() { echo "FAILED:" "$@" 1>&2; exit 1; }
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
PYTHON="${PYTHON:-python3}"
|
|
Packit Service |
a04d08 |
if [ ! $(which ${PYTHON}) ]; then
|
|
Packit Service |
a04d08 |
echo "Please install python first."
|
|
Packit Service |
a04d08 |
exit 1
|
|
Packit Service |
a04d08 |
fi
|
|
Packit Service |
a04d08 |
py_prefix=$(${PYTHON} -c 'import sys; print("py%d%d" % (sys.version_info.major, sys.version_info.minor))')
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Check dependencies:
|
|
Packit Service |
a04d08 |
depschecked=/tmp/c-i.dependencieschecked
|
|
Packit Service |
a04d08 |
pkgs="
|
|
Packit Service |
a04d08 |
bash
|
|
Packit Service |
a04d08 |
dmidecode
|
|
Packit Service |
a04d08 |
e2fsprogs
|
|
Packit Service |
a04d08 |
$py_prefix-Jinja2
|
|
Packit Service |
a04d08 |
$py_prefix-boto
|
|
Packit Service |
a04d08 |
$py_prefix-configobj
|
|
Packit Service |
a04d08 |
$py_prefix-jsonpatch
|
|
Packit Service |
a04d08 |
$py_prefix-jsonpointer
|
|
Packit Service |
a04d08 |
$py_prefix-jsonschema
|
|
Packit Service |
a04d08 |
$py_prefix-oauthlib
|
|
Packit Service |
a04d08 |
$py_prefix-requests
|
|
Packit Service |
751c4a |
$py_prefix-pyserial
|
|
Packit Service |
a04d08 |
$py_prefix-yaml
|
|
Packit Service |
a04d08 |
sudo
|
|
Packit Service |
a04d08 |
"
|
|
Packit Service |
a04d08 |
[ -f "$depschecked" ] || pkg install --yes ${pkgs} || fail "install packages"
|
|
Packit Service |
a04d08 |
touch $depschecked
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Build the code and install in /usr/local/:
|
|
Packit Service |
a04d08 |
${PYTHON} setup.py build
|
|
Packit Service |
a04d08 |
${PYTHON} setup.py install -O1 --skip-build --prefix /usr/local/ --init-system sysvinit_freebsd
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Enable cloud-init in /etc/rc.conf:
|
|
Packit Service |
a04d08 |
sed -i.bak -e "/cloudinit_enable=.*/d" /etc/rc.conf
|
|
Packit Service |
a04d08 |
echo 'cloudinit_enable="YES"' >> /etc/rc.conf
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
echo "Installation completed."
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
if [ "$#" -gt 1 ] && [ "$1" = "run" ]; then
|
|
Packit Service |
a04d08 |
echo "Ok, now let's see if it works."
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Backup SSH keys
|
|
Packit Service |
a04d08 |
mv /etc/ssh/ssh_host_* /tmp/
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Remove old metadata
|
|
Packit Service |
a04d08 |
rm -rf /var/lib/cloud
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Just log everything, quick&dirty
|
|
Packit Service |
a04d08 |
rm /usr/local/etc/cloud/cloud.cfg.d/05_logging.cfg
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Start:
|
|
Packit Service |
a04d08 |
/usr/local/etc/rc.d/cloudinit start
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# Restore SSH keys
|
|
Packit Service |
a04d08 |
mv /tmp/ssh_host_* /etc/ssh/
|
|
Packit Service |
a04d08 |
fi
|