mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-16 10:32:34 +01:00
- Update base debian iso to version 7.11 - Upgrade ruby version to 2.3.0 (latest/stable) - Fix Gemfile - Update README - Fix openswan pkg name with the same version - Remove cloud-cleanup it's not available Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
121 lines
3.9 KiB
Markdown
121 lines
3.9 KiB
Markdown
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.
|
|
|
|
===========================================================
|
|
|
|
# Setting up Tools and Environment
|
|
|
|
- Install latest VirtualBox (5.0+)
|
|
- Install tools for exporting appliances: qemu-img, vboxmanage, vhd-util, ovftool
|
|
- Install [RVM](https://rvm.io/rvm/install)
|
|
- Install dependencies (tested on Ubuntu 16.04):
|
|
apt-get install sharutils libxslt1-dev libxml2-dev zlib1g-dev build-essential ruby ruby-bundler ruby-dev qemu-utils blktap-utils faketime
|
|
- Setup paths:
|
|
export PATH=~/.rvm/bin:$PATH
|
|
- Install Ruby 2.3.0, if it installed some other version:
|
|
rvm install 2.3.0
|
|
- Set rvm to use that 2.3.0
|
|
rvm use ruby-2.3.0
|
|
- Install bundler: (if you get any openssl issue see https://rvm.io/packages/openssl)
|
|
gem install bundler
|
|
|
|
All the dependencies will be fetched automatically.
|
|
|
|
To save some time if you've downloaded iso of your distro, put the isos in:
|
|
tools/appliance/iso/
|
|
|
|
# Setting up jenkins (CI) builds
|
|
|
|
All the tools listed above are expected to be available. If you follow
|
|
|
|
http://rvm.io/integration/jenkins
|
|
|
|
then you'll need to do a bit of logic to load RVM in jenkins. In the
|
|
build script you put into jenkins, start it with
|
|
```
|
|
#!/bin/bash -l
|
|
```
|
|
|
|
to ensure a login shell, then add something like
|
|
```
|
|
# inspired by https://github.com/CloudBees-community/rubyci-clickstart/blob/master/bin/run-ci
|
|
# also see https://rvm.io/integration/jenkins
|
|
# .rvmrc won't get trusted/auto-loaded by jenkins by default
|
|
export VAGRANT_HOME=$HOME/.vagrant.d-release-cloudstack
|
|
rvm use ruby-1.9.3@vagrant-release-cloudstack --create
|
|
# do not use --deployment since that requires Gemfile.lock...and we prefer an up-to-date veewee
|
|
bundle_args="--path vendor/bundle"
|
|
```
|
|
|
|
|
|
# How to build SystemVMs automatically
|
|
|
|
Just run build.sh, it will export archived appliances for KVM, XenServer,
|
|
VMWare and HyperV in `dist` directory:
|
|
|
|
bundle install
|
|
bash build.sh systemvm64template
|
|
|
|
# Building SystemVM template appliance manually
|
|
|
|
List available appliances one can build:
|
|
|
|
veewee vbox list
|
|
|
|
Modify scripts in definitions/*appliance*/ as per needs.
|
|
Build systemvm template appliance:
|
|
|
|
veewee vbox build 'systemvmtemplate'
|
|
|
|
Start the box:
|
|
|
|
veewee vbox up 'systemvmtemplate'
|
|
|
|
Halt the box:
|
|
|
|
veewee vbox halt 'systemvmtemplate'
|
|
|
|
Now VirtualBox can be used to export appliance.
|
|
|
|
To build the systemvm64template by hand using veewee, set VM_ARCH=amd64 and use
|
|
the systemvmtemplate:
|
|
|
|
export VM_ARCH=amd64
|
|
cp -r definitions/systemvmtemplate definitions/systemvm64template
|
|
veewee vbox build 'systemvm64template'
|
|
|
|
Troubleshooting
|
|
===============
|
|
If you see following line in the screen, then veewee is failing
|
|
extracting vboxmanage version.
|
|
|
|
Downloading vbox guest additions iso v - http://download.virtualbox.org/vi
|
|
|
|
You would be able to check it manually by typing:
|
|
|
|
vboxmanage --version
|
|
|
|
If you're using Fedora for example, you'll need to install `kernel-devel`
|
|
package and run `/etc/init.d/vboxdrv setup` to get veewee working.
|
|
|
|
Testing
|
|
=======
|
|
The ./test.sh script tries out a few different default ways to invoke build.sh.
|
|
|
|
See ../vagrant/systemvm for a test setup that uses vagrant+serverspec to
|
|
provide actual integration tests that verify the built systemvm is up to spec.
|