75 lines
1.8 KiB
Bash
Executable File
75 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eux
|
|
|
|
manifest=$(get-pip-manifest os-collect-config)
|
|
|
|
virtualenv --setuptools $OS_COLLECT_CONFIG_VENV_DIR
|
|
set +u
|
|
source $OS_COLLECT_CONFIG_VENV_DIR/bin/activate
|
|
set -u
|
|
|
|
if [ -n "$manifest" ]; then
|
|
use-pip-manifest $manifest
|
|
else
|
|
# Need setuptools>=1.0 to manage connections when
|
|
# downloading from pypi using http_proxy and https_proxy
|
|
$OS_COLLECT_CONFIG_VENV_DIR/bin/pip install -U 'setuptools>=1.0'
|
|
# bug #1293812 : Avoid easy_install triggering on pbr.
|
|
$OS_COLLECT_CONFIG_VENV_DIR/bin/pip install -U 'pbr>=0.11'
|
|
$OS_COLLECT_CONFIG_VENV_DIR/bin/pip install -U os-collect-config
|
|
fi
|
|
|
|
# Write the manifest of what was installed
|
|
write-pip-manifest os-collect-config
|
|
|
|
ln -s $OS_COLLECT_CONFIG_VENV_DIR/bin/os-collect-config /usr/local/bin/os-collect-config
|
|
|
|
# Minimal static config for bootstrapping
|
|
cat > /etc/os-collect-config.conf <<eof
|
|
[DEFAULT]
|
|
command=os-refresh-config
|
|
eof
|
|
chmod 600 /etc/os-collect-config.conf
|
|
|
|
if [ "$DIB_INIT_SYSTEM" == "upstart" ] ; then
|
|
cat > /etc/init/os-collect-config.conf <<eof
|
|
start on runlevel [2345]
|
|
stop on runlevel [016]
|
|
respawn
|
|
|
|
# We're logging to syslog
|
|
console none
|
|
|
|
exec os-collect-config 2>&1 | logger -t os-collect-config
|
|
eof
|
|
|
|
elif [ "$DIB_INIT_SYSTEM" == "systemd" ] ; then
|
|
if [ -d "/lib/systemd" ]; then
|
|
path=/lib/systemd/system/os-collect-config.service
|
|
else
|
|
path=/usr/lib/systemd/system/os-collect-config.service
|
|
fi
|
|
cat > $path <<eof
|
|
[Unit]
|
|
Description=Collect metadata and run hook commands.
|
|
After=cloud-config.service
|
|
Before=crond.service
|
|
|
|
[Service]
|
|
ExecStart=/usr/local/bin/os-collect-config
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
eof
|
|
|
|
else
|
|
echo Only systems with systemd or upstart are supported.
|
|
exit 1
|
|
fi
|
|
os-svc-enable -n os-collect-config
|
|
|
|
set +u
|
|
deactivate
|
|
set -u
|