Difference between revisions of "stoney cloud: Upgrade"

From stoney cloud
Jump to: navigation, search
[unchecked revision][checked revision]
(Prepare your stoney cloud installation for the update)
(Basic Testing Steps)
 
(38 intermediate revisions by 4 users not shown)
Line 3: Line 3:
  
 
== Prepare your stoney cloud installation for the update ==
 
== Prepare your stoney cloud installation for the update ==
If you have a '''productive''' (releases) stoney clooud Installation, execute the following command:
+
 
 +
=== <= 1.2.10.3 ===
 +
 
 +
If you have a '''productive''' (releases) stoney cloud Installation, execute the following command:
 
<source lang="bash">
 
<source lang="bash">
 
echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/releases/1.2/packages"' >> /etc/portage/make.conf
 
echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/releases/1.2/packages"' >> /etc/portage/make.conf
Line 12: Line 15:
 
echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/packages"' >> /etc/portage/make.conf
 
echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/packages"' >> /etc/portage/make.conf
 
</source>
 
</source>
 
  
 
'''IMPORTANT:''' Even a pre-release ISO may result in a stable installation, depending on when it was generated in the release cycle. Please verify by executing <code>git branch</code> in <code>/usr/portage</code> and <code>/var/lib/layman/foss-cloud</code> whether this is the case, and [[stoney_cloud:_Switch_to_testing_branch|switch to the testing branch]] if needed (that is: if the branch displayed does not contain the words <code>pre</code> or <code>testing</code>. If the branch is empty, that means you have a brand new installation without anything yet. In that case, directly check the configuration files <code>/usr/portage/.git/config</code> and/or <code>/var/lib/layman/foss-cloud/.git/config</code> to see which branch it would check out upon <code>emerge --sync</code> and from where.).
 
'''IMPORTANT:''' Even a pre-release ISO may result in a stable installation, depending on when it was generated in the release cycle. Please verify by executing <code>git branch</code> in <code>/usr/portage</code> and <code>/var/lib/layman/foss-cloud</code> whether this is the case, and [[stoney_cloud:_Switch_to_testing_branch|switch to the testing branch]] if needed (that is: if the branch displayed does not contain the words <code>pre</code> or <code>testing</code>. If the branch is empty, that means you have a brand new installation without anything yet. In that case, directly check the configuration files <code>/usr/portage/.git/config</code> and/or <code>/var/lib/layman/foss-cloud/.git/config</code> to see which branch it would check out upon <code>emerge --sync</code> and from where.).
  
 +
=== >= 1.2.10.4 ===
 +
 +
Execute the following command to register the binary package mirror (since for now there will be only pre-releases, but with better quality than FOSS-Cloud releases):
 +
 +
<source lang="bash">
 +
echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/packages"' >> /etc/portage/make.conf
 +
 +
# Disable the SYNC from rsync since newer portage versions otherwise won't accept a portage tree via git
 +
sed -i -e 's|^SYNC|#SYNC|' /etc/portage/make.conf
 +
</source>
 +
 +
== Update ==
 +
 +
=== Updating from 1.2.10.7 or earlier to 1.2.10.8_rc4 or newer ===
 +
 +
A complete rebuild of all packages was required, therefore the update guide is different:
 +
 +
<source lang='bash'>
 +
emerge --sync
 +
 +
emerge -eK world -va
 +
 +
# sst-libvirt-hooks is not part of the stoney-cloud anymore since it requires further configuration
 +
# make sure that it still gets updated and not removed later, if you have it installed and enabled
 +
emerge -K app-emulation/sst-libvirt-hooks
 +
 +
dispatch-conf
 +
 +
# Switch runtime switchable options
 +
eselect python set python3.3
 +
eselect php set cli php5.5
 +
eselect php set apache2 php5.5
 +
gcc-config x86_64-pc-linux-gnu-4.7.3
 +
</source>
 +
 +
During the dispatch-conf the following may appear:
 +
* /etc/libvirt/libvirt.conf: you may get the suggestion to remove almost all content. Quit dispatch-conf and do: <code>rm /etc/libvirt/._mrg*</code> and start dispatch-conf again.
 +
* /etc/libvirt/libvirt.conf: merge all whitespace/comment changes but make sure you don't overwrite the <code>listen_addr</code>
 +
* /etc/portage/make.conf: merge all changes beside the <code>PORTAGE_BINHOST</code>
 +
* /var/www/localhost/htdocs/vm-manager/vm_config.php: merge the versions, newly added lines and comments. Avoid changes on sstSourceHostName array
 +
 +
To make sure everything works, reboot and then cleanup:
 +
 +
<source lang='bash'>
 +
emerge --depclean -va
 +
</source>
 +
 +
* If the cleanup fails stating that <code>Locale-gettext</code> and <code>dev-libs/boost</code> depends on some version of perl, reinstall that package manually once and try again:
 +
<source lang='bash'>
 +
emerge -1Kva dev-libs/boost Locale-gettext
 +
 +
# same for autoconf-/automake-wrapper if host was used to build stuff:
 +
emerge -1K sys-devel/autoconf-wrapper sys-devel/automake-wrapper
 +
</source>
 +
* '''WARNING''': this also removes the current kernel. If you want to play it safe, reboot first, then depclean, then reboot again
 +
* Rebuilde separately installed perl modules and remove traces of the old perl version:
 +
<source lang='bash'>
 +
perl-cleaner --all -- -va
 +
rm -rf /usr/lib64/perl5/{vendor_perl,}/5.12.4
 +
</source>
 +
 +
==== Emulator ====
 +
* u=devices,sstVirtualMachine=*,ou=virtual machines,ou=virtualization,ou=services,o=stepping-stone,c=ch
 +
 +
Change
 +
<pre>
 +
sstEmulator: /usr/bin/qemu-kvm
 +
</pre>
 +
to
 +
<pre>
 +
sstEmulator: /usr/bin/qemu-system-x86_64
 +
</pre>
 +
 +
==== Source Port ====
 +
* sstDisk=vda,ou=devices,sstVirtualMachine=*,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
 +
* sstDisk=vdb,ou=devices,sstVirtualMachine=*,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
 +
 +
Add
 +
<pre>
 +
sstSourcePort: 24007
 +
</pre>
 +
 +
==== Firewall / Subversion ====
 +
If you are using our firewall scripts (libvirt-hooks based), you'll also have to upgrade subversion (on all the stoney cloud nodes):
 +
<source lang='bash'>
 +
cd /usr/local/scripts/netfilter/local/chains/vms
 +
svn upgrade
 +
cd /usr/local/scripts/netfilter/local/chains/$(hostname -s)
 +
svn upgrade
 +
</source>
 +
 +
=== Regular Update ===
  
 
Makes sure, your local portage tree is updated:
 
Makes sure, your local portage tree is updated:
Line 32: Line 126:
 
Total: 0 packages, Size of downloads: 0 kB
 
Total: 0 packages, Size of downloads: 0 kB
  
  * virtual/foss-cloud-1.2.10
+
  * virtual/foss-cloud-1.2.10.4
  
 
Would you like to add these packages to your world favorites? [Yes/No] '''no'''
 
Would you like to add these packages to your world favorites? [Yes/No] '''no'''
Line 97: Line 191:
  
 
== Basic Testing Steps ==
 
== Basic Testing Steps ==
 +
Get your stoney cloud image:
 +
<source lang='bash'>
 +
version=1.2.10.7        # stoney cloud version
 +
 +
cd /var/virtualization/iso-choosable/
 +
wget http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/iso/foss-cloud-installer-${version}.iso
 +
chown apache:vm-storage foss-cloud-installer-${version}.iso
 +
chmod 644 foss-cloud-installer-${version}.iso
 +
</source>
 +
 +
Get the [http://www.sysresccd.org/SystemRescueCd_Homepage SystemRescueCd] ISO:
 +
<source lang='bash'>
 +
version=4.5.1      # SystemRescueCd version
 +
sha256="4fda2fce55a46c7b258fba10c88a4a337821c8b801a8cd3c344cc223a9c4436d" # SHA256 checksum of the ISO
 +
isoFile="systemrescuecd-x86-${version}.iso"
 +
 +
cd /var/virtualization/iso-choosable/
 +
 +
wget http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/${version}/${isoFile}
 +
 +
# Check that the file was downloaded correctly
 +
echo "${sha256} ${isoFile}" | sha256sum -c -
 +
 +
chown apache:vm-storage ${isoFile}
 +
chmod 644 ${isoFile}
 +
</source>
 +
 
Get a Fedora ISO image:
 
Get a Fedora ISO image:
cd /var/virtualization/iso-choosable/
+
<source lang='bash'>
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/iso/Fedora-20-x86_64-netinst.iso
+
version=21        # Fedora version
chown apache:vm-storage Fedora-20-x86_64-netinst.iso
+
 
chmod 644 Fedora-20-x86_64-netinst.iso
+
cd /var/virtualization/iso-choosable/
 +
wget http://mirror.switch.ch/ftp/mirror/fedora/linux/releases/${version}/Server/x86_64/iso/Fedora-Server-netinst-x86_64-${version}.iso
 +
chown apache:vm-storage Fedora-Server-netinst-x86_64-${version}.iso
 +
chmod 644 Fedora-Server-netinst-x86_64-${version}.iso
 +
</source>
  
 
Lernstick (Test):
 
Lernstick (Test):
cd /var/virtualization/iso-choosable/
+
<source lang='bash'>
wget http://www.imedias.ch/dateien/lernstick-testversion/lernstick_debian7_2013-12-12.iso
+
cd /var/virtualization/iso-choosable/
chown apache:vm-storage lernstick_debian7_2013-12-12.iso
+
wget http://www.imedias.ch/dateien/lernstick-testversion/lernstick_debian7_2013-12-12.iso
chmod 644 lernstick_debian7_2013-12-12.iso
+
chown apache:vm-storage lernstick_debian7_2013-12-12.iso
 +
chmod 644 lernstick_debian7_2013-12-12.iso
 +
</source>
 +
 
 +
Get your debian image:
 +
<source lang='bash'>
 +
version=8.0.0        # Debian version
 +
 
 +
cd /var/virtualization/iso-choosable/
 +
wget http://cdimage.debian.org/debian-cd/${version}/amd64/iso-cd/debian-${version}-amd64-netinst.iso
 +
chown apache:vm-storage debian-${version}-amd64-netinst.iso
 +
chmod 644 debian-${version}-amd64-netinst.iso
 +
</source>
 +
 
 +
Get your ubuntu desktop image:
 +
<source lang='bash'>
 +
version=14.04        # ubuntu version
 +
 
 +
cd /var/virtualization/iso-choosable/
 +
wget http://mirror.switch.ch/ftp/mirror/ubuntu-cdimage/${version}/ubuntu-${version}-desktop-amd64.iso
 +
chown apache:vm-storage ubuntu-${version}-desktop-amd64.iso
 +
chmod 644 ubuntu-${version}-desktop-amd64.iso
 +
</source>
 +
 
 +
Get your ubuntu server image:
 +
<source lang='bash'>
 +
version=14.04        # ubuntu version
 +
 
 +
cd /var/virtualization/iso-choosable/
 +
wget http://mirror.switch.ch/ftp/mirror/ubuntu-cdimage/${version}/ubuntu-${version}-server-amd64.iso
 +
chown apache:vm-storage ubuntu-${version}-server-amd64.iso
 +
chmod 644 ubuntu-${version}-server-amd64.iso
 +
</source>
 +
 
 +
Get a Windows 2012 Server R2 ISO image:
 +
<source lang='bash'>
 +
cd /var/virtualization/iso-choosable/
 +
wget http://care.dlservice.microsoft.com/dl/download/6/2/A/62A76ABB-9990-4EFC-A4FE-C7D698DAEB96/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_EN-US-IR3_SSS_X64FREE_EN-US_DV9.ISO -O windows_server_2012_r2_64bit_en.iso
 +
chown apache:vm-storage windows_server_2012_r2_64bit_en.iso
 +
chmod 644 windows_server_2012_r2_64bit_en.iso
 +
</source>
 +
 
 +
If you need the newest Windows Drivers ISO image, visit https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
  
 
Set three network ranges under https://192.168.140.10/vm-manager/subnet/index.html
 
Set three network ranges under https://192.168.140.10/vm-manager/subnet/index.html

Latest revision as of 11:03, 11 August 2017

Overview

This guide explains, what you need to do during the installation of your Multi-Node Installation.

Prepare your stoney cloud installation for the update

<= 1.2.10.3

If you have a productive (releases) stoney cloud Installation, execute the following command:

echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/releases/1.2/packages"' >> /etc/portage/make.conf

If you have a test (pre-releases) stoney cloud Installation instead, execute the following command:

echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/packages"' >> /etc/portage/make.conf

IMPORTANT: Even a pre-release ISO may result in a stable installation, depending on when it was generated in the release cycle. Please verify by executing git branch in /usr/portage and /var/lib/layman/foss-cloud whether this is the case, and switch to the testing branch if needed (that is: if the branch displayed does not contain the words pre or testing. If the branch is empty, that means you have a brand new installation without anything yet. In that case, directly check the configuration files /usr/portage/.git/config and/or /var/lib/layman/foss-cloud/.git/config to see which branch it would check out upon emerge --sync and from where.).

>= 1.2.10.4

Execute the following command to register the binary package mirror (since for now there will be only pre-releases, but with better quality than FOSS-Cloud releases):

echo 'PORTAGE_BINHOST="http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/packages"' >> /etc/portage/make.conf
 
# Disable the SYNC from rsync since newer portage versions otherwise won't accept a portage tree via git
sed -i -e 's|^SYNC|#SYNC|' /etc/portage/make.conf

Update

Updating from 1.2.10.7 or earlier to 1.2.10.8_rc4 or newer

A complete rebuild of all packages was required, therefore the update guide is different:

emerge --sync
 
emerge -eK world -va
 
# sst-libvirt-hooks is not part of the stoney-cloud anymore since it requires further configuration
# make sure that it still gets updated and not removed later, if you have it installed and enabled
emerge -K app-emulation/sst-libvirt-hooks
 
dispatch-conf
 
# Switch runtime switchable options
eselect python set python3.3
eselect php set cli php5.5
eselect php set apache2 php5.5
gcc-config x86_64-pc-linux-gnu-4.7.3

During the dispatch-conf the following may appear:

  • /etc/libvirt/libvirt.conf: you may get the suggestion to remove almost all content. Quit dispatch-conf and do: rm /etc/libvirt/._mrg* and start dispatch-conf again.
  • /etc/libvirt/libvirt.conf: merge all whitespace/comment changes but make sure you don't overwrite the listen_addr
  • /etc/portage/make.conf: merge all changes beside the PORTAGE_BINHOST
  • /var/www/localhost/htdocs/vm-manager/vm_config.php: merge the versions, newly added lines and comments. Avoid changes on sstSourceHostName array

To make sure everything works, reboot and then cleanup:

emerge --depclean -va
  • If the cleanup fails stating that Locale-gettext and dev-libs/boost depends on some version of perl, reinstall that package manually once and try again:
emerge -1Kva dev-libs/boost Locale-gettext
 
# same for autoconf-/automake-wrapper if host was used to build stuff:
emerge -1K sys-devel/autoconf-wrapper sys-devel/automake-wrapper
  • WARNING: this also removes the current kernel. If you want to play it safe, reboot first, then depclean, then reboot again
  • Rebuilde separately installed perl modules and remove traces of the old perl version:
perl-cleaner --all -- -va
rm -rf /usr/lib64/perl5/{vendor_perl,}/5.12.4

Emulator

  • u=devices,sstVirtualMachine=*,ou=virtual machines,ou=virtualization,ou=services,o=stepping-stone,c=ch

Change

sstEmulator: /usr/bin/qemu-kvm

to

sstEmulator: /usr/bin/qemu-system-x86_64

Source Port

  • sstDisk=vda,ou=devices,sstVirtualMachine=*,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
  • sstDisk=vdb,ou=devices,sstVirtualMachine=*,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org

Add

sstSourcePort: 24007

Firewall / Subversion

If you are using our firewall scripts (libvirt-hooks based), you'll also have to upgrade subversion (on all the stoney cloud nodes):

cd /usr/local/scripts/netfilter/local/chains/vms
svn upgrade
cd /usr/local/scripts/netfilter/local/chains/$(hostname -s)
svn upgrade

Regular Update

Makes sure, your local portage tree is updated:

emerge --sync

Now you can make sure, that you've got the current stoney cloud version installed:

emerge -KuDva virtual/foss-cloud
Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 kB

 * virtual/foss-cloud-1.2.10.4

Would you like to add these packages to your world favorites? [Yes/No] '''no'''

If you have updated you stoney cloud, you might want to sanely update your configuration files after emerging new packages (including updates):

dispatch-conf

Installing Software Examples

Per default, the stoney cloud expects you to install binary packages. So if you don't pass any special parameters to the emerge command, the binary package (if it exists) will be used.

Binary Package

Per default, the stoney cloud expects you to install binary packages, which can be seen with [binary R ] output.

emerge -va git
These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary   R    ] dev-vcs/git-1.7.12.4  USE="blksha1 curl iconv nls pcre perl threads webdav -cgi -cvs -doc -emacs -gpg -gtk -highlight (-ppcsha1) -python -subversion {-test} -tk -xinetd" 5,295 kB

Total: 1 package (1 reinstall, 1 binary), Size of downloads: 5,295 kB

Would you like to merge these packages? [Yes/No] no

Quitting.

Force Non-Binary Package

If you force a non-binary package, the output will be in the form of [ebuild R ].

FEATURES="-getbinpkg" emerge -va git
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] app-arch/cpio-2.11  USE="nls" 995 kB
[ebuild   R    ] dev-vcs/git-1.7.12.4  USE="blksha1 curl iconv nls pcre perl threads webdav -cgi -cvs -doc -emacs -gpg -gtk -highlight (-ppcsha1) -python -subversion {-test} -tk -xinetd" 4,523 kB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 5,518 kB

Would you like to merge these packages? [Yes/No] 

No Binary Package Exists

The following example shows you a package with no existing binary package, therefore the package must be compiled on the fly, shown with [ebuild N ].

emerge -va htop
Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] sys-process/htop-1.0.2  USE="unicode -openvz -vserver" 380 kB

Total: 1 package (1 new), Size of downloads: 380 kB

Would you like to merge these packages? [Yes/No] 

Multi-Node Installation

Follow the Specialized Installation Guide.

Basic Testing Steps

Get your stoney cloud image:

version=1.2.10.7        # stoney cloud version
 
cd /var/virtualization/iso-choosable/
wget http://packages.stoney-cloud.org/stoney-cloud/pre-releases/1.2/iso/foss-cloud-installer-${version}.iso
chown apache:vm-storage foss-cloud-installer-${version}.iso
chmod 644 foss-cloud-installer-${version}.iso

Get the SystemRescueCd ISO:

version=4.5.1       # SystemRescueCd version
sha256="4fda2fce55a46c7b258fba10c88a4a337821c8b801a8cd3c344cc223a9c4436d" # SHA256 checksum of the ISO
isoFile="systemrescuecd-x86-${version}.iso"
 
cd /var/virtualization/iso-choosable/
 
wget http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/${version}/${isoFile}
 
# Check that the file was downloaded correctly
echo "${sha256} ${isoFile}" | sha256sum -c -
 
chown apache:vm-storage ${isoFile}
chmod 644 ${isoFile}

Get a Fedora ISO image:

version=21        # Fedora version
 
cd /var/virtualization/iso-choosable/
wget http://mirror.switch.ch/ftp/mirror/fedora/linux/releases/${version}/Server/x86_64/iso/Fedora-Server-netinst-x86_64-${version}.iso
chown apache:vm-storage Fedora-Server-netinst-x86_64-${version}.iso
chmod 644 Fedora-Server-netinst-x86_64-${version}.iso

Lernstick (Test):

cd /var/virtualization/iso-choosable/
wget http://www.imedias.ch/dateien/lernstick-testversion/lernstick_debian7_2013-12-12.iso
chown apache:vm-storage lernstick_debian7_2013-12-12.iso
chmod 644 lernstick_debian7_2013-12-12.iso

Get your debian image:

version=8.0.0        # Debian version
 
cd /var/virtualization/iso-choosable/
wget http://cdimage.debian.org/debian-cd/${version}/amd64/iso-cd/debian-${version}-amd64-netinst.iso
chown apache:vm-storage debian-${version}-amd64-netinst.iso
chmod 644 debian-${version}-amd64-netinst.iso

Get your ubuntu desktop image:

version=14.04        # ubuntu version
 
cd /var/virtualization/iso-choosable/
wget http://mirror.switch.ch/ftp/mirror/ubuntu-cdimage/${version}/ubuntu-${version}-desktop-amd64.iso
chown apache:vm-storage ubuntu-${version}-desktop-amd64.iso
chmod 644 ubuntu-${version}-desktop-amd64.iso

Get your ubuntu server image:

version=14.04        # ubuntu version
 
cd /var/virtualization/iso-choosable/
wget http://mirror.switch.ch/ftp/mirror/ubuntu-cdimage/${version}/ubuntu-${version}-server-amd64.iso
chown apache:vm-storage ubuntu-${version}-server-amd64.iso
chmod 644 ubuntu-${version}-server-amd64.iso

Get a Windows 2012 Server R2 ISO image:

cd /var/virtualization/iso-choosable/
wget http://care.dlservice.microsoft.com/dl/download/6/2/A/62A76ABB-9990-4EFC-A4FE-C7D698DAEB96/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_EN-US-IR3_SSS_X64FREE_EN-US_DV9.ISO -O windows_server_2012_r2_64bit_en.iso
chown apache:vm-storage windows_server_2012_r2_64bit_en.iso
chmod 644 windows_server_2012_r2_64bit_en.iso

If you need the newest Windows Drivers ISO image, visit https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

Set three network ranges under https://192.168.140.10/vm-manager/subnet/index.html

192.168.140.64
26
Template Range
template
192.168.140.128
26
Persistent Range
persistent
192.168.140.192
26
Dynamic Range
dynamic

Add the three newly creates network ranges to the VM-Pools under https://192.168.140.10/vm-manager/vmPool/index.html

Create a Virtual Machine Profile under https://192.168.140.10/vm-manager/vmProfile/create.html

Create a Virtual Machine Template under https://192.168.140.10/vm-manager/vmTemplate/create.html and install a basic operating system.

Create a persistent Virtual Machine from the newly created Virtual Machine Template.

Known Issues

None.