#!/bin/sh # # Copyright (C) 2014 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # This is a "morph deploy" configuration extension to fully configure # a Mason instance at deployment time. It uses the following variables # from the environment: # # * ARTIFACT_CACHE_SERVER # * MASON_CLUSTER_MORPHOLOGY # * MASON_DEFINITIONS_REF # * MASON_DISTBUILD_ARCH # * MASON_TEST_HOST # * TROVE_HOST # * TROVE_ID # * CONTROLLERHOST set -e ROOT="$1" ########################################################################## # Copy Mason files into root filesystem ########################################################################## 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 ########################################################################## # Set up httpd web server ########################################################################## cp mason/httpd.service "$ROOT"/etc/systemd/system/httpd.service mkdir -p "$ROOT"/srv/mason cat >>"$ROOT"/etc/httpd.conf <"$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