Настройка Buildbot для виртуальных машин — Debian 7 "wheezy"
Базовая установка
qemu-img create -f qcow2 /kvm/vms/vm-wheezy-amd64-serial.qcow2 10G qemu-img create -f qcow2 /kvm/vms/vm-wheezy-i386-serial.qcow2 10G
Запустите каждую виртуальную машину, загрузив с сервера ISO-образ, по одному за раз, и выполните следующие шаги установки:
kvm -m 1024 -hda /kvm/vms/vm-wheezy-amd64-serial.qcow2 -cdrom /kvm/iso/debian-testing-amd64-CD-1.iso -redir tcp:2269::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user kvm -m 1024 -hda /kvm/vms/vm-wheezy-i386-serial.qcow2 -cdrom /kvm/iso/debian-testing-i386-CD-1.iso -redir tcp:2270::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user
После запуска вы можете подключиться к серверу VNC с вашего локального хоста, используя:
vncviewer -via ${remote-host} localhost
Замените ${remote-host} на хост, на котором запущена виртуальная машина.
Примечание: При активации установки, vncviewer может отключиться с сообщением о том, что прямоугольник слишком большой. Это нормально. Debian просто изменил размер экрана vnc. Просто переподключитесь.
Установите, в основном, выбирая стандартные параметры, с учетом следующих замечаний:
- Установите имя хоста debian7-wheezy-amd64 или debian7-wheezy-i386
- При разбиении дисков выберите «Руководство — использовать весь диск» (мы не хотим LVM)
- Схема разбиения: все файлы в одной папке
- Дополнительные CD не нужны
- Настройте зеркало сети
- Экран выбора программного обеспечения
- Снять отметку с «Рабочая среда Debian»
- Снять отметку с «Сервер печати»
- Оставить «Сервер SSH» и «Стандартные системные утилиты»
После завершения установки установщик попытается перезагрузить систему, но затем завершится с ошибкой. Это нормально, просто прервите процесс kvm на сервере-хосте.
Теперь, когда виртуальная машина установлена, пришло время ее настроить. Если у вас достаточно оперативной памяти, вы можете сделать следующее одновременно:
kvm -m 1024 -hda /kvm/vms/vm-wheezy-amd64-serial.qcow2 -redir tcp:2269::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic kvm -m 1024 -hda /kvm/vms/vm-wheezy-i386-serial.qcow2 -redir tcp:2270::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic ssh -p 2269 localhost # edit /boot/grub/menu.lst and visudo, see below ssh -p 2270 localhost # edit /boot/grub/menu.lst and visudo, see below ssh -t -p 2269 localhost "mkdir -v .ssh" ssh -t -p 2270 localhost "mkdir -v .ssh" scp -P 2269 /kvm/vms/authorized_keys localhost:.ssh/ scp -P 2270 /kvm/vms/authorized_keys localhost:.ssh/ echo $'Buildbot\n\n\n\n\ny' | ssh -p 2269 localhost 'chmod -vR go-rwx .ssh; sudo adduser --disabled-password buildbot; sudo addgroup buildbot sudo; sudo mkdir ~buildbot/.ssh; sudo cp -vi .ssh/authorized_keys ~buildbot/.ssh/; sudo chown -vR buildbot:buildbot ~buildbot/.ssh; sudo chmod -vR go-rwx ~buildbot/.ssh' echo $'Buildbot\n\n\n\n\ny' | ssh -p 2270 localhost 'chmod -vR go-rwx .ssh; sudo adduser --disabled-password buildbot; sudo addgroup buildbot sudo; sudo mkdir ~buildbot/.ssh; sudo cp -vi .ssh/authorized_keys ~buildbot/.ssh/; sudo chown -vR buildbot:buildbot ~buildbot/.ssh; sudo chmod -vR go-rwx ~buildbot/.ssh' scp -P 2269 /kvm/vms/ttyS0.conf buildbot@localhost: scp -P 2270 /kvm/vms/ttyS0.conf buildbot@localhost: ssh -p 2269 buildbot@localhost 'sudo cp -vi ttyS0.conf /etc/init/; rm -v ttyS0.conf; sudo shutdown -h now' ssh -p 2270 buildbot@localhost 'sudo cp -vi ttyS0.conf /etc/init/; rm -v ttyS0.conf; sudo shutdown -h now'
Включение парольной аутентификации sudo:
su -
vi /etc/apt/sources.list #comment out the deb cdrom line
apt-get update
apt-get install sudo vim tree
update-alternatives --config editor # select vim.basic
visudo # comment out existing %sudo line and add: %sudo ALL=NOPASSWD: ALL
usermod -a -G sudo ${username}
Редактирование /boot/grub/menu.lst:
vi /etc/default/grub
# Add/edit these entries:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
GRUB_TERMINAL="serial"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
update-grub
# exit back to the host server
Виртуальные машины для создания .deb пакетов
for i in '/kvm/vms/vm-wheezy-amd64-serial.qcow2 2269 qemu64' '/kvm/vms/vm-wheezy-i386-serial.qcow2 2270 qemu64' ; do \
set $i; \
runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/build/')" \
"= scp -P $2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no /kvm/boost_1_49_0.tar.gz buildbot@localhost:/dev/shm/" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get -y build-dep mysql-server-5.5" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts hardening-wrapper fakeroot doxygen texlive-latex-base ghostscript libevent-dev libssl-dev zlib1g-dev libpam0g-dev libreadline-gplv2-dev autoconf automake automake1.9 dpatch ghostscript-x libfontenc1 libjpeg62 libltdl-dev libltdl7 libmail-sendmail-perl libxfont1 lmodern texlive-latex-base-doc ttf-dejavu ttf-dejavu-extra libaio-dev xfonts-encodings xfonts-utils libxml2-dev unixodbc-dev" \
"cd /usr/local/src;sudo tar zxf /dev/shm/boost_1_49_0.tar.gz;cd /usr/local/include/;sudo ln -vs ../src/boost_1_49_0/boost ." ; \
done
Виртуальные машины для тестирования установки
См. Настройка Buildbot для виртуальных машин - Общие принципы для получения информации о my.seed и sources.append.
for i in '/kvm/vms/vm-wheezy-amd64-serial.qcow2 2269 qemu64' '/kvm/vms/vm-wheezy-i386-serial.qcow2 2270 qemu64' ; do \
set $i; \
runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/install/')" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y patch libaio1 debconf-utils unixodbc libxml2" \
"= scp -P $2 /kvm/vms/my.seed /kvm/vms/sources.append buildbot@localhost:/tmp/" \
"sudo debconf-set-selections /tmp/my.seed" \
"sudo sh -c 'cat /tmp/sources.append >> /etc/apt/sources.list'"; \
done
Виртуальные машины для тестирования обновления MySQL
05.12.2013 были воссозданы виртуальные машины для обновления, на этот раз основанные на серийной виртуальной машине (что лучше с точки зрения обслуживания).
for i in '/kvm/vms/vm-wheezy-amd64-serial.qcow2 2269 qemu64' '/kvm/vms/vm-wheezy-i386-serial.qcow2 2270 qemu64' ; do \
set $i; \
runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/upgrade/')" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y patch libaio1 debconf-utils unixodbc libxml2" \
"= scp -P $2 /kvm/vms/my.seed /kvm/vms/sources.append buildbot@localhost:/tmp/" \
"sudo debconf-set-selections /tmp/my.seed" \
"sudo sh -c 'cat /tmp/sources.append >> /etc/apt/sources.list'" \
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libaio1 mysql-server-5.5' \
'mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' ;\
done
Вот как изначально создавались виртуальные машины для обновления:
for i in '/kvm/vms/vm-wheezy-amd64-install.qcow2 2269 qemu64' '/kvm/vms/vm-wheezy-i386-install.qcow2 2270 qemu64' ; do \
set $i; \
runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/install/upgrade/')" \
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libaio1 mysql-server-5.5' \
'mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' ;\
done
Виртуальные машины для тестирования обновления MariaDB
Шаги ниже основаны на шагах для Natty, указанных в Установка образов виртуальных машин для тестирования обновления .deb между версиями.
for i in '/kvm/vms/vm-wheezy-amd64-serial.qcow2 2269 qemu64' '/kvm/vms/vm-wheezy-i386-serial.qcow2 2270 qemu64' ; do \
set $i; \
runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/upgrade2/')" \
"= scp -P $2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no /kvm/vms/mariadb-wheezy.list buildbot@localhost:/tmp/tmp.list" \
'sudo mv -vi /tmp/tmp.list /etc/apt/sources.list.d/' \
'sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1BB943DB' \
'sudo apt-get update' \
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-server-5.5 mariadb-client mariadb-client-5.5 mariadb-test libmariadbclient-dev' \
'sudo apt-get -f install' \
'sudo mysqladmin -u root password "rootpass"' \
'sudo /etc/init.d/mysql restart' \
'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 -v /etc/apt/sources.list.d/tmp.list' \
'sudo apt-get update' \
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libaio1' \
'sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y'; \
done
Добавление ключа в known_hosts
Выполните следующие действия на каждом сервере хоста построения, чтобы добавить виртуальные машины в known_hosts.
# wheezy-amd64 cp -avi /kvm/vms/vm-wheezy-amd64-install.qcow2 /kvm/vms/vm-wheezy-amd64-test.qcow2 kvm -m 1024 -hda /kvm/vms/vm-wheezy-amd64-test.qcow2 -redir tcp:2269::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic sudo su - buildbot ssh -p 2269 buildbot@localhost sudo shutdown -h now rm -v /kvm/vms/vm-wheezy-amd64-test.qcow2 # wheezy-i386 cp -avi /kvm/vms/vm-wheezy-i386-install.qcow2 /kvm/vms/vm-wheezy-i386-test.qcow2 kvm -m 1024 -hda /kvm/vms/vm-wheezy-i386-test.qcow2 -redir tcp:2270::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic sudo su - buildbot ssh -p 2270 buildbot@localhost sudo shutdown -h now rm -v /kvm/vms/vm-wheezy-i386-test.qcow2
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/buildbot-setup-for-virtual-machines-debian-7-wheezy/