diff options
Diffstat (limited to 'mason.configure')
-rw-r--r-- | mason.configure | 108 |
1 files changed, 67 insertions, 41 deletions
diff --git a/mason.configure b/mason.configure index 90d49709..4341d8c0 100644 --- a/mason.configure +++ b/mason.configure @@ -32,70 +32,96 @@ set -e ROOT="$1" -if [ "$ARTIFACT_CACHE_SERVER" = "" \ - -o "$MASON_CLUSTER_MORPHOLOGY" = "" \ - -o "$MASON_DEFINITIONS_REF" = "" \ - -o "$MASON_DISTBUILD_ARCH" = "" \ - -o "$MASON_TEST_HOST" = "" ]; then - echo Not configuring as Mason, some options not defined - exit 0 -fi - ########################################################################## -# Functions +# Copy Mason files into root filesystem ########################################################################## -shellescape() { - echo "'$(echo "$1" | sed -e "s/'/'\\''/g")'" -} +mkdir -p "$ROOT"/usr/lib/mason +cp mason/mason.sh "$ROOT"/usr/lib/mason/mason.sh +cp mason/mason-report.sh "$ROOT"/usr/lib/mason/mason-report.sh + +cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer + +cp mason/mason.service "$ROOT"/etc/systemd/system/mason.service ########################################################################## -# Generate config variable shell snippet +# Set up httpd web server ########################################################################## -MASON_CONFIG="$ROOT"/root/mason.conf - -echo "Creating $MASON_CONFIG" -cat >>"$MASON_CONFIG" <<EOF -#################### START OF DEPLOY TIME CONFIGURATION ####################### +cp mason/httpd.service "$ROOT"/etc/systemd/system/httpd.service -ARTIFACT_CACHE_SERVER=$(shellescape "$ARTIFACT_CACHE_SERVER") -UPSTREAM_TROVE_ADDRESS=$(shellescape "$TROVE_HOST") -DEFINITIONS_REF=$(shellescape "$MASON_DEFINITIONS_REF") -DISTBUILD_ARCH=$(shellescape "$MASON_DISTBUILD_ARCH") -DISTBUILD_CONTROLLER_ADDRESS=$(shellescape "$CONTROLLERHOST") -TROVE_ID=$(shellescape "$TROVE_ID") -BUILD_CLUSTER_MORPHOLOGY=$(shellescape "$MASON_CLUSTER_MORPHOLOGY") -TEST_VM_HOST_SSH_URL=$(shellescape "$MASON_TEST_HOST") +mkdir -p "$ROOT"/srv/mason -##################### END OF DEPLOY TIME CONFIGURATION ######################## +cat >>"$ROOT"/etc/httpd.conf <<EOF +.log:text/plain EOF +mkdir -p "$ROOT"/var/mason ########################################################################## -# Copy Mason files into root filesystem +# Copy files needed for Ansible configuration ########################################################################## -cp mason/mason.sh "$ROOT"/root/mason.sh -cp mason/mason-report.sh "$ROOT"/root/mason-report.sh +mkdir -p "$ROOT/usr/share/mason-setup" +mkdir -p "$ROOT/usr/lib/mason-setup" -cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer -ln -s ../mason.timer "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.timer +cp mason/share/* "$ROOT/usr/share/mason-setup" +cp -r mason/ansible "$ROOT/usr/lib/mason-setup/" +cp mason/mason-setup.service "$ROOT"/etc/systemd/system/mason-setup.service + +ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason-setup.service -cp mason/mason.service "$ROOT"/etc/systemd/system/mason.service -ln -s ../mason.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.service ########################################################################## -# Set up httpd web server +# Check variables ########################################################################## -cp mason/httpd.service "$ROOT"/etc/systemd/system/httpd.service -ln -s ../httpd.service "$ROOT"/etc/systemd/system/multi-user.target.wants/httpd.service +if [ -n "$MASON_GENERIC" ]; then + echo Not configuring Mason, it will be generic + exit 0 +fi -mkdir -p "$ROOT"/srv/mason +if [ "$ARTIFACT_CACHE_SERVER" = "" \ + -o "$MASON_CLUSTER_MORPHOLOGY" = "" \ + -o "$MASON_DEFINITIONS_REF" = "" \ + -o "$MASON_DISTBUILD_ARCH" = "" \ + -o "$MASON_TEST_HOST" = "" ]; then + echo Not configuring as Mason, some options not defined + exit 1 +fi -cat >>"$ROOT"/etc/httpd.conf <<EOF -.log:text/plain +########################################################################## +# Generate config variable shell snippet +########################################################################## + +MASON_DATA="$ROOT/etc/mason" +mkdir -p "$MASON_DATA" + +python <<'EOF' >"$MASON_DATA/mason.conf" +import os, sys, yaml + +trove_configuration={ + 'ARTIFACT_CACHE_SERVIER': os.environ['ARTIFACT_CACHE_SERVER'], + 'MASON_CLUSTER_MORPHOLOGY': os.environ['MASON_CLUSTER_MORPHOLOGY'], + 'MASON_DEFINITIONS_REF': os.environ['MASON_DEFINITIONS_REF'], + 'MASON_DISTBUILD_ARCH': os.environ['MASON_DISTBUILD_ARCH'], + 'MASON_TEST_HOST': os.environ['MASON_TEST_HOST'], + 'TROVE_ADMIN_NAME': os.environ['TROVE_ADMIN_NAME'], + 'TROVE_ID': os.environ['TROVE_ID'], + 'TROVE_HOST': os.environ['TROVE_HOST'], + 'CONTROLLERHOST': os.environ['CONTROLLERHOST'], +} + +yaml.dump(trove_configuration, sys.stdout, default_flow_style=False) EOF + + +########################################################################## +# Enable services +########################################################################## + +ln -s ../mason.timer "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.timer +ln -s ../mason.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.service +ln -s ../httpd.service "$ROOT"/etc/systemd/system/multi-user.target.wants/httpd.service |