mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-7143: use shar to inject cloud-scripts from working copy
The current build downloads its script from master by fetching a cloudstack tarball. Besides being an unneeded load on the apache git server, this is a problem when working on a branch and wanting to inject a different set of scripts. It also makes it pretty likely that the injected copy of the script will not match what a production release wants, so there is very little chance of not needing to overwrite the scripts. Ideally we would just rsync over some files. However, veewee does not provide an option to do that. In order to keep a 'cleanly veewee-only' build possible, and work with any recent veewee version, in this change we restor to using shar (http://en.wikipedia.org/wiki/Shar) to produce an archive which can execute as a script, which we feed to veewee to execute.
This commit is contained in:
parent
35ba68444b
commit
33fd6894a0
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Reference in New Issue