Buildbot Setup for Virtual Machines - Debian 7 "wheezy"

Installazione base

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

Avviare ogni VM dall'iso di installazione del server e seguire queste istruzioni:

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

Una volta avviato, riconnettersi con il server VNC dall'host locale:

vncviewer -via ${host-remoto} localhost

Sostituire ${host-remoto} con l'host su cui gira la VM.

Nota: Quando si avvia l'installazione, vncviewer potrebbe disconnettersi dicendo che il rect è troppo grande. Va tutto bene. Debian ha semplicemente ridimensionato lo schermo vnc. Basta riconnettersi.

Installare, mantenendo perloppiù le opzioni predefinite, con qualche accorgimento:

  • Impostare il nome host a debian7-wheezy-amd64 o debian7-wheezy-i386
  • Quando si partizionano i dischi, scegliere "Guided - use entire disk" (non vogliamo LVM)
    • Schema di partizionamento: tutti i file una partizione
  • Nessun CD aggiuntivo
  • Configurare un mirror di rete
  • Schermata di selezione del Software
    • Deselezionare "Debian desktop environment"
    • Deselezionare "Print server"
    • Mantenere "SSH server" e "Standard system utilities"

Al termine dell'installazione, l'installer tenta di riavviare e fallisce. Va bene così, terminare il processo kvm sul server host.

Ora che la VM è installata, è tempo di configurarla. Se si ha abbastanza memoria si possono eseguire le seguenti operazioni simultaneamente:

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
# modificare /boot/grub/menu.lst and visudo, vedi sotto

ssh -p 2270 localhost
# modificare /boot/grub/menu.lst and visudo, vedi sotto

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'

Abilitare sudo senza password:

su -
vi /etc/apt/sources.list #commentare la riga deb cdrom
apt-get update
apt-get install sudo vim tree
update-alternatives --config editor # selezionare vim.basic
visudo # commentare la riga %sudo e aggiungere: %sudo ALL=NOPASSWD: ALL
usermod -a -G sudo ${username}

Modificare /boot/grub/menu.lst:

vi /etc/default/grub

# Aggiungere/modificare queste voci:
    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
# uscire e tornare al server

VM per compilare i .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" \
    "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

VM per testare l'installazione

Si veda Configurare Buildbot per le Macchine Virtuali - Principi generali per sapere come ottenere my.seed e 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 libaio1 debconf-utils" \
    "= 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

VM per testare l'aggiornamento da MySQL

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

La VM per l'aggiornamento degli upgrade di MariaDB non è stata compilata. Quando i pacchetti di MariaDB Wheezy saranno disponibili, questa VM verrà compilata.

VM per testare l'aggiornamento di MariaDB

Le istruzioni qui sotto sono basate su quelle per Natty, su Installare le immagini delle VM per testare l'aggiornamento dei .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-squeeze.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' \
    '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 install -y libaio1' \
    'sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y'; \
done

Aggiungere le chiavi a known_hosts

Seguire queste istruzioni su ogni host per aggiungere le VM a 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

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.