diff --git a/tools/appliance/.ruby-version b/tools/appliance/.ruby-version index 7a895c21423..bc9bac6213b 100644 --- a/tools/appliance/.ruby-version +++ b/tools/appliance/.ruby-version @@ -1 +1 @@ -1.9.3-p484 +2.3.0p0 diff --git a/tools/appliance/.rvmrc b/tools/appliance/.rvmrc index 3c8c66c97f9..573ecb78640 100644 --- a/tools/appliance/.rvmrc +++ b/tools/appliance/.rvmrc @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -rvm use ruby-1.9.3@vagrant-release-cloudstack --create +rvm use ruby-2.3.0@vagrant-release-cloudstack --create export VAGRANT_HOME=$HOME/.vagrant.d-release-cloudstack bundle check > /dev/null 2>&1 RETVAL=$? diff --git a/tools/appliance/Gemfile b/tools/appliance/Gemfile index 386601c192f..acd771b6ac7 100644 --- a/tools/appliance/Gemfile +++ b/tools/appliance/Gemfile @@ -16,7 +16,9 @@ # under the License. source 'https://rubygems.org' -# gem 'veewee', :git => 'https://github.com/jedi4ever/veewee.git' + gem 'veewee', '~> 0.4.5.1' gem 'em-winrm' gem 'sys-proctable' +gem 'net-scp' +gem 'net-ssh' diff --git a/tools/appliance/README.md b/tools/appliance/README.md index 82b04881090..403eb45bb44 100644 --- a/tools/appliance/README.md +++ b/tools/appliance/README.md @@ -19,17 +19,17 @@ under the License. # Setting up Tools and Environment - - Install latest VirtualBox (at least 4.2) - - Install tools for exporting appliances: qemu-img, vboxmanage, vhd-util + - Install latest VirtualBox (5.0+) + - Install tools for exporting appliances: qemu-img, vboxmanage, vhd-util, ovftool - Install [RVM](https://rvm.io/rvm/install) - - Install shar - yum install sharutils + - 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 1.9.3, if it installed some other version: - rvm install 1.9.3 - - Set rvm to use that 1.9.3 - rvm use ruby-1.9.3 + - 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 @@ -38,10 +38,6 @@ 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/ -Note, gem may require gcc-4.2, make sure link exists: - - sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 - # Setting up jenkins (CI) builds All the tools listed above are expected to be available. If you follow @@ -69,9 +65,10 @@ 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`: +VMWare and HyperV in `dist` directory: - bash build.sh [systemvmtemplate|systemvmtemplate64] + bundle install + bash build.sh systemvm64template # Building SystemVM template appliance manually @@ -103,7 +100,7 @@ the systemvmtemplate: Troubleshooting =============== -If you see following line in the screen, then veewee is failing +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 diff --git a/tools/appliance/build.sh b/tools/appliance/build.sh index 96fe6dfa7d1..9ac43885cd8 100755 --- a/tools/appliance/build.sh +++ b/tools/appliance/build.sh @@ -64,8 +64,13 @@ echo $@ | grep '\-h' >/dev/null && usage # make # sudo make install # * vhd-util +# Install on yum-based: # sudo yum -y install python-devel dev86 iasl iasl-devel libuuid libuuid-devel \ # glib-devel glib2 glib2-devel yajl yajl-devel +# Install on apt-based: +# sudo apt-get install -y python python-dev bcc bin86 iasl uuid-dev \ +# libglib2.0-dev libyajl-dev build-essential libc6-dev zlib1g-dev libncurses5-dev \ +# patch iasl libbz2-dev e2fslibs-dev xz-utils gettext # wget -q http://bits.xensource.com/oss-xen/release/4.2.0/xen-4.2.0.tar.gz # tar xzvf xen-4.2.0.tar.gz # cd xen-4.2.0/tools/ @@ -77,7 +82,7 @@ echo $@ | grep '\-h' >/dev/null && usage # sudo ldconfig # sudo cp blktap2/vhd/vhd-util /usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver # faketime 2010-01-01 vhd-util convert - +# set -e ### @@ -529,8 +534,6 @@ function vmware_export() { stage_vmx ${appliance_build_name}-vmware ${appliance_build_name}-vmware.vmdk ovftool ${appliance_build_name}-vmware.vmx ${appliance_build_name}-vmware.ova fi - bzip2 "${appliance_build_name}-vmware.vmdk" - mv "${appliance_build_name}-vmware.vmdk.bz2" dist/ mv ${appliance_build_name}-vmware.ova dist/ log INFO "${appliance} exported for VMWare: dist/${appliance_build_name}-vmware.ova" } diff --git a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh index 4f655436172..57fa2a7c52d 100644 --- a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh +++ b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh @@ -37,7 +37,6 @@ function install_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 diff --git a/tools/appliance/definitions/systemvmtemplate/definition.rb b/tools/appliance/definitions/systemvmtemplate/definition.rb index 3d9da813433..db6fce807e7 100644 --- a/tools/appliance/definitions/systemvmtemplate/definition.rb +++ b/tools/appliance/definitions/systemvmtemplate/definition.rb @@ -27,15 +27,15 @@ arch = ENV['VM_ARCH'] || 'i386' architectures = { :i386 => { :os_type_id => 'Debian', - :iso_file => 'debian-7.9.0-i386-netinst.iso', - :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.9.0/i386/iso-cd/debian-7.9.0-i386-netinst.iso', - :iso_md5 => 'e101a11ddb31f85acef542df1a49bf57', + :iso_file => 'debian-7.11.0-i386-netinst.iso', + :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.11.0/i386/iso-cd/debian-7.11.0-i386-netinst.iso', + :iso_md5 => '75055a694508f5b891038ec12d703c9e', }, :amd64 => { :os_type_id => 'Debian_64', - :iso_file => 'debian-7.9.0-amd64-netinst.iso', - :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.9.0/amd64/iso-cd/debian-7.9.0-amd64-netinst.iso', - :iso_md5 => '774d1fc8c5364e63b22242c33a89c1a3' + :iso_file => 'debian-7.11.0-amd64-netinst.iso', + :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.11.0/amd64/iso-cd/debian-7.11.0-amd64-netinst.iso', + :iso_md5 => '096c1c18b44c269808bd815d58c53c8f' } } diff --git a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh index c8b7b91e7b4..f5f871b38dc 100644 --- a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh +++ b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh @@ -63,7 +63,7 @@ function install_packages() { nfs-common \ samba-common cifs-utils \ xl2tpd bcrelay ppp ipsec-tools tdb-tools \ - openswan=1:2.6.37-3 \ + openswan=1:2.6.37-3+deb7u1 \ xenstore-utils libxenstore3.0 \ conntrackd ipvsadm libnetfilter-conntrack3 libnl-3-200 libnl-genl-3-200 \ ipcalc \