Installare le immagini delle VM per testare l'aggiornamento dei .deb
Questa procedura crea le immagini della macchina virtuale usate per effettuare un importante aggiornamento per i .debs. Ogni macchina virtuale è preinstallata con una vecchia versione di MariaDB, e il test tenta di aggiornarla alla versione più recente (per verificare che le dipendenze etc. funzionino correttamente).
Potrebbe non essere semplice replicare esattamente questa procedura per le immagini nuove o aggiornate. Per esempio, quando si aggiunge una nuova piattaforma/distro, non si avrà la stessa vecchia versione di MariaDB sulla nuova piattaforma. Oppure, se si dovrà ricreare un'immagine in futuro, i .deb originali .debs utilizzati la prima volta potrebbero non essere più disponibili. Tuttavia questo non è un grosso problema, perché si può semplicemente utilizzare la versione di MariaDB che è disponibile. Infatti, anche se non si può ragionevolmente testare ogni possibile combinazione di aggiornamenti tra le versioni di MariaDB, è comunque utile testare gli aggiornamenti tra versioni differenti su piattaforme differenti, per incrementare un po' la copertura.
Il grosso delle immagini sono state installate con i due cicli seguenti, utilizzando i pacchetti del repository di OurDelta per MariaDB 5.1.42, che era l'unico disponibile al momento dell'installazione.
for i in "vm-hardy-amd64-install qemu64 hardy" "vm-hardy-i386-install qemu32,-nx hardy" \ "vm-intrepid-amd64-install qemu64 intrepid" "vm-intrepid-i386-install qemu32,-nx intrepid" \ "vm-karmic-amd64-install qemu64 karmic" "vm-karmic-i386-install qemu32,-nx karmic" \ "vm-jaunty-amd64-install qemu64 jaunty" "vm-jaunty-i386-deb-install qemu32,-nx jaunty" \ "vm-debian5-amd64-install qemu64 lenny" "vm-debian5-i386-install qemu32,-nx lenny" ; do \ set $i; \ runvm -b $1.qcow2 -m 512 --smp=1 --port=2200 --user=buildbot --cpu=$2 $(echo $1 | sed -e 's/-install/-upgrade2/').qcow2 \ "wget -O- http://ourdelta.org/deb/ourdelta.gpg | sudo apt-key add -" \ "sudo sh -c \"echo 'deb http://mirror.ourdelta.org/deb $3 mariadb-ourdelta' > /etc/apt/sources.list.d/ourdelta.list\"" \ "sudo apt-get update || true" \ "sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-test libmariadbclient-dev || true" \ 'mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' \ "sudo rm /etc/apt/sources.list.d/ourdelta.list" \ "sudo apt-get update || true" \ "sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y || true" ; \ done
for i in "vm-debian4-amd64-install qemu64 etch /kvm/debian-40r8-amd64-netinst.iso" "vm-debian4-i386-install qemu32,-nx etch /kvm/debian-40r8-i386-netinst.iso" ; do \ set $i; \ runvm -b $1.qcow2 -m 512 --smp=1 --port=2200 --user=buildbot --cpu=$2 --netdev=e1000 --kvm=-cdrom --kvm=$4 $(echo $1 | sed -e 's/-install/-upgrade2/').qcow2 \ "wget -O- http://ourdelta.org/deb/ourdelta.gpg | sudo apt-key add -" \ "sudo sh -c \"echo 'deb http://mirror.ourdelta.org/deb $3 mariadb-ourdelta' > /etc/apt/sources.list.d/ourdelta.list\"" \ "sudo apt-get update || true" \ "sudo sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-test libmariadbclient-dev' || true" \ 'mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' \ "sudo rm /etc/apt/sources.list.d/ourdelta.list" \ "sudo apt-get update || true" \ "sudo sh -c 'DEBIAN_FRONTEND=noninteractive apt-get upgrade -y' || true" ; \ done
Le immagini di Ubuntu 10.04 "lucid" sono state installate manualmente (perché in OurDelta non c'erano pacchetti per lucid al momento dell'installazione):
Creare e avviare l'immagine dell'aggiornamento di lucid a 64 bit:
qemu-img create -b vm-lucid-amd64-install.qcow2 -f qcow2 vm-lucid-amd64-upgrade2.qcow2 kvm -m 512 -hda vm-lucid-amd64-upgrade2.qcow2 -redir 'tcp:2200::22' -boot c -smp 1 -cpu qemu64 -net nic,model=virtio -net user -nographic
Creare una directory dentro l'immagine:
mkdir buildbot
Copiarci dentro i pacchetti da installare:
scp -P 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r /archive/pack/mariadb-5.1-knielsen/build-277/kvm-deb-lucid-amd64/debs buildbot@localhost:buildbot/
Installare i pacchetti di MariaDB, eliminare la directory dei pacchetti e aggiornare con gli ultimi security fix:
sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" rm -Rf buildbot sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
Poi fare lo stesso per lucid a 32 bit:
qemu-img create -b vm-lucid-i386-install.qcow2 -f qcow2 vm-lucid-i386-upgrade2.qcow2 kvm -m 512 -hda vm-lucid-i386-upgrade2.qcow2 -redir 'tcp:2200::22' -boot c -smp 1 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic
Creare una directory nell'immagine:
mkdir buildbot
Copiarci dentro i pacchetti da installare:
scp -P 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r /archive/pack/mariadb-5.1-knielsen/build-277/kvm-deb-lucid-x86/debs buildbot@localhost:buildbot/
Installare i pacchetti di MariaDB, eliminare la directory dei pacchetti e aggiornare con gli ultimi security fix:
sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" rm -Rf buildbot sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
Le immagini per Ubuntu 10.10 "maverick" sono anch'esse installate manualmente:
Creare e avviare l'immagine per aggiornare maverick a 64 bit:
qemu-img create -b vm-maverick-amd64-install.qcow2 -f qcow2 vm-maverick-amd64-upgrade2.qcow2 kvm -m 512 -hda vm-maverick-amd64-upgrade2.qcow2 -redir 'tcp:2200::22' -boot c -smp 1 -cpu qemu64 -net nic,model=virtio -net user -nographic ssh -p 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no buildbot@localhost mkdir buildbot scp -P 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r /archive/pack/mariadb-5.1-knielsen/build-619/kvm-deb-maverick-amd64/debs buildbot@localhost:buildbot/ ssh -p 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no buildbot@localhost sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" rm -Rf buildbot sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
Fare lo stesso per maverick a 32 bit:
qemu-img create -b vm-maverick-i386-install.qcow2 -f qcow2 vm-maverick-i386-upgrade2.qcow2 kvm -m 512 -hda vm-maverick-i386-upgrade2.qcow2 -redir 'tcp:2200::22' -boot c -smp 1 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic ssh -p 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no buildbot@localhost mkdir buildbot scp -P 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r /archive/pack/mariadb-5.1-knielsen/build-619/kvm-deb-maverick-x86/debs buildbot@localhost:buildbot/ ssh -p 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no buildbot@localhost sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" rm -Rf buildbot sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
Per Ubuntu 11.04 "natty", i pacchetti di MariaDB sono stati installati dal repository per la versione precedente.
Ubuntu natty a 64 bit:
qemu-img create -b vm-natty-amd64-install.qcow2 -f qcow2 vm-natty-amd64-upgrade2.qcow2 kvm -m 512 -hda vm-natty-amd64-upgrade2.qcow2 -redir 'tcp:2200::22' -boot c -smp 1 -cpu qemu64 -net nic,model=virtio -net user -nographic ssh -p 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no buildbot@localhost sudo sh -c 'cat > /etc/apt/sources.list.d/tmp.list' deb http://ftp.osuosl.org/pub/mariadb/repo/5.1/ubuntu maverick main deb-src http://ftp.osuosl.org/pub/mariadb/repo/5.1/ubuntu maverick main sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" sudo rm /etc/apt/sources.list.d/tmp.list sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
Ubuntu natty a 32 bit:
qemu-img create -b vm-natty-i386-install.qcow2 -f qcow2 vm-natty-i386-upgrade2.qcow2 kvm -m 512 -hda vm-natty-i386-upgrade2.qcow2 -redir 'tcp:2200::22' -boot c -smp 1 -cpu qemu64 -net nic,model=virtio -net user -nographic ssh -p 2200 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no buildbot@localhost sudo sh -c 'cat > /etc/apt/sources.list.d/tmp.list' deb http://ftp.osuosl.org/pub/mariadb/repo/5.1/ubuntu maverick main deb-src http://ftp.osuosl.org/pub/mariadb/repo/5.1/ubuntu maverick main sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" sudo rm /etc/apt/sources.list.d/tmp.list sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
Per Ubuntu 11.10 "oneiric". Le procedure da seguire si trovano alla pagina Configurare Buildbot per le macchine virtuali - Ubuntu 11.10 "oneiric" (nella sezione VM per il test degli aggiornamenti)