diff --git a/tools/appliance/build.sh b/tools/appliance/build.sh index d15d2eec3a4..84d9648a883 100755 --- a/tools/appliance/build.sh +++ b/tools/appliance/build.sh @@ -244,6 +244,9 @@ function create_definition() { set -e add_on_exit rm -rf "definitions/${appliance_build_name}" fi + + ./shar_cloud_scripts.sh + add_on_exit rm -f cloud_scripts_shar_archive.sh } function prepare() { diff --git a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh index b9476b6be32..e682fc729db 100644 --- a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh +++ b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh @@ -31,21 +31,13 @@ function configure_apache2() { } function install_cloud_scripts() { - # Get config files from master - snapshot_url="https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=snapshot;h=HEAD;sf=tgz" - snapshot_dir="/opt/cloudstack*" - cd /opt - wget --no-check-certificate $snapshot_url -O cloudstack.tar.gz - tar -zxvf cloudstack.tar.gz --wildcards 'cloudstack-HEAD-???????/systemvm' - cp -rv $snapshot_dir/systemvm/patches/debian/config/* / - cp -rv $snapshot_dir/systemvm/patches/debian/vpn/* / - mkdir -p /usr/share/cloud/ - cd $snapshot_dir/systemvm/patches/debian/config - tar -cvf /usr/share/cloud/cloud-scripts.tar * - cd $snapshot_dir/systemvm/patches/debian/vpn - tar -rvf /usr/share/cloud/cloud-scripts.tar * - cd /opt - rm -fr $snapshot_dir cloudstack.tar.gz + # ./cloud_scripts/ has been put there by ../../cloud_scripts_shar_archive.sh + rsync -av ./cloud_scripts/ / + chmod +x /opt/cloud/bin/* \ + /root/{clearUsageRules.sh,reconfigLB.sh,monitorServices.py} \ + /etc/init.d/{cloud,cloud-early-config,cloud-passwd-srvr,postinit} \ + /etc/cron.daily/cloud-cleanup \ + /etc/profile.d/cloud.sh chkconfig --add cloud-early-config chkconfig cloud-early-config on @@ -73,6 +65,7 @@ configure_services() { mkdir -p /var/lib/haproxy install_cloud_scripts + do_signature chkconfig xl2tpd off @@ -84,7 +77,6 @@ configure_services() { chkconfig radvd off configure_apache2 - do_signature } return 2>/dev/null || configure_services diff --git a/tools/appliance/definitions/systemvmtemplate/definition.rb b/tools/appliance/definitions/systemvmtemplate/definition.rb index 691952f37aa..59654065617 100644 --- a/tools/appliance/definitions/systemvmtemplate/definition.rb +++ b/tools/appliance/definitions/systemvmtemplate/definition.rb @@ -85,6 +85,7 @@ config = { # turning it into a systemvm 'install_systemvm_packages.sh', 'configure_conntrack.sh', + '../../cloud_scripts_shar_archive.sh', 'configure_systemvm_services.sh', 'authorized_keys.sh', # cleanup & space-saving diff --git a/tools/appliance/shar_cloud_scripts.sh b/tools/appliance/shar_cloud_scripts.sh new file mode 100755 index 00000000000..33268e85248 --- /dev/null +++ b/tools/appliance/shar_cloud_scripts.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# since veewee wants .sh files to execute, we'll give it a shar + +set -e +set -x + +# where we are running this script from +CURR_DIR=${PWD} +# where this script is +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# where cloudstack is checked out +cd ${SCRIPT_DIR}/../.. +CLOUDSTACK_DIR=${PWD} +cd ${CURR_DIR} +# ensure we are running in isolation +TEMP_DIR=`mktemp -d -t shar_cloud` + +cd ${TEMP_DIR} +mkdir cloud_scripts +mkdir -p cloud_scripts/opt/cloudstack +cp -r ${CLOUDSTACK_DIR}/systemvm/patches/debian/config/* cloud_scripts/ +cp -r ${CLOUDSTACK_DIR}/systemvm/patches/debian/vpn/* cloud_scripts/ + +mkdir -p cloud_scripts/usr/share/cloud +cd ${CLOUDSTACK_DIR}/systemvm/patches/debian/config +tar -cf ${TEMP_DIR}/cloud_scripts/usr/share/cloud/cloud-scripts.tar * +cd ${CLOUDSTACK_DIR}/systemvm/patches/debian/vpn +tar -rf ${TEMP_DIR}/cloud_scripts/usr/share/cloud/cloud-scripts.tar * + +cd ${TEMP_DIR} +shar `find . -print` > ${CURR_DIR}/cloud_scripts_shar_archive.sh + +cd ${CURR_DIR} +rm -rf ${TEMP_DIR} +chmod +x cloud_scripts_shar_archive.sh +echo cloud_scripts are in cloud_scripts_shar_archive.sh