tripleo-image-elements/elements/os-collect-config/install.d/os-collect-config-source-in.../10-os-collect-config

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