Установка образов ВМ для тестирования обновления .deb между версиями
Этот шаг создаёт образы виртуальных машин, используемые для проведения важного дополнительного теста обновления .deb. Каждая виртуальная машина предварительно установлена со старой версией MariaDB, а тест пытается обновить эту версию до новой (чтобы проверить корректность работы зависимостей и т.д.).
Этот шаг может быть нелегко воспроизведён точно для новых или обновлённых образов. Например, когда мы добавляем новую платформу/дистрибутив, у нас не будет той же старой версии MariaDB, доступной для установки на новой платформе. Или если в будущем потребуется пересоздать образ, исходные старые .deb, использованные ранее, могут больше не быть доступны. Однако это не большая проблема, так как мы можем просто использовать любую доступную версию MariaDB. На самом деле, хотя мы не можем разумно протестировать каждую возможную комбинацию обновлений между версиями MariaDB, всё же полезно тестировать обновления с разных версий на разных платформах, чтобы немного увеличить охват.
Основная часть образов была установлена с помощью следующих двух циклов, используя пакеты из репозитория OurDelta для MariaDB 5.1.42, которая была доступна там на момент установки.
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
Образы Ubuntu 10.04 "lucid" были установлены вручную (так как пакеты для lucid не были доступны из OurDelta на момент установки):
Создать и запустить 64-битную образ lucid для обновления:
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
Создать директорию внутри образа:
mkdir buildbot
Скопировать в пакеты для установки извне:
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/
Установить пакеты MariaDB, удалить директорию пакетов и обновить до последних исправлений безопасности:
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
Теперь то же самое, но для 32-битного lucid:
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
Создать директорию внутри образа:
mkdir buildbot
Скопировать в пакеты для установки извне:
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/
Установить пакеты MariaDB, удалить директорию пакетов и обновить до последних исправлений безопасности:
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
Образы Ubuntu 10.10 "maverick" также были установлены вручную:
Создать и запустить 64-битную образ maverick для обновления:
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
То же самое для 32-битного maverick:
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
Для Ubuntu 11.04 "natty" пакеты mariadb устанавливались из репозитория для предыдущей версии.
64-битный Ubuntu natty:
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
32-битный Ubuntu natty:
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
Для Ubuntu 11.10 "oneiric". Шаги, выполненные, перечислены по адресу: Настройка Buildbot для виртуальных машин - Ubuntu 11.10 "oneiric" (в разделе Тестирование обновлений для ВМ).
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/installing-vm-images-for-testing-deb-upgrade-between-versions/