Difference between revisions of "stoney cloud: Upgrade"
[unchecked revision] | [checked revision] |
(→Prepare stoney cloud for the update) |
(→Basic Testing Steps) |
||
(48 intermediate revisions by 5 users not shown) | |||
Line 2: | Line 2: | ||
This guide explains, what you need to do during the installation of your Multi-Node Installation. | This guide explains, what you need to do during the installation of your Multi-Node Installation. | ||
− | == Prepare stoney cloud for the update == | + | == Prepare your stoney cloud installation for the update == |
− | If you have a '''productive''' (releases) stoney | + | |
+ | === <= 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.). | ||
+ | |||
+ | === >= 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: | ||
− | + | emerge --sync | |
Now you can make sure, that you've got the current stoney cloud version installed: | Now you can make sure, that you've got the current stoney cloud version installed: | ||
Line 28: | 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 93: | 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: | ||
− | + | <source lang='bash'> | |
− | + | 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 | ||
+ | </source> | ||
Lernstick (Test): | Lernstick (Test): | ||
− | + | <source lang='bash'> | |
− | + | 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 | ||
+ | </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 10:03, 11 August 2017
Contents
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
anddev-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.