Configurare Buildbot per le Macchine Virtuali - Red Hat 6 x86

Il seguente procedimento è stato usato per creare un buildslave Red Hat 6 x86.

Setup iniziale

cd vms
qemu-img create -f qcow2 vm-rhel6-x86-base.qcow2 8G
kvm -m 1024 -hda vm-rhel6-x86-base.qcow2 -cdrom ../iso/red-hat/rhel-server-6.0-i386-dvd.iso -redir 'tcp:22275::22' -boot d -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user

All'avvio della VM andare al prompt.

Re-inizializzare il drive, quando viene chiesto.

Impostare l'Hostname a "rhel6-x86".

Configurare la rete, impostare eth0 a "Connect Automatically"

Impostare la password di root.

Impostare il tipo di partizionamento a: Use All Space

Non criptare le partizioni (comporta solo un ritardo).

Selezionare "Write Changes to Disk" nella popup, quando appare..

Impostare il software a "Virtual Host".

Dopo aver cliccato su next nella schermata del tipo di installazione, l'installazione comincia.

Una volta completata, cliccare reboot. Poi arrestare la VM.

Configurare la console seriale

cd vms
qemu-img create -b vm-rhel6-x86-base.qcow2 -f qcow2 vm-rhel6-x86-serial.qcow2
kvm -m 1024 -hda vm-rhel6-x86-serial.qcow2 -redir 'tcp:22275::22' -boot c -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user

Entrare come root.

Aggiungere a /boot/grub/menu.lst:

serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=3 serial console

Inoltre aggiungere in menu.lst alla riga del kernel (dopo aver cancellato 'quiet'):

console=tty0 console=ttyS0,115200n8

Aggiungere il prompt del login alla console seriale:

cat >>/etc/inittab <<END

# Console seriale.
S0:2345:respawn:/sbin/agetty -h -L ttyS0 19200 vt100
END

Creare un accout buildbot

Ora che la rete funziona, si può aggiungere un nuovo utente per evitare di dover entrare come root.

useradd buildbot
# La password è disabilitata per default in Centos5.
usermod -a -G wheel buildbot
visudo
# Decommentare la riga "%wheel        ALL=(ALL)       NOPASSWD: ALL"
# Commentare questa riga:
# Defaults    requiretty

# Mettere in public la chiave ssh per l'account e l'host.
# Notare che Centos5 richiede: .ssh/authorized_keys chmod go-rwx.
su - buildbot
mkdir .ssh
chmod go-rwx .ssh

# Caricare via scp la key dall'host vm a .ssh/authorized_keys

chmod go-rwx .ssh/authorized_keys

Poi uscire e connettersi via ssh alla VM come utente buildbot. Sulla mia box ho aggiunto quanto segue al file /.ssh/config per semplificare il login:

Host rhel6-x86
HostName localhost
  User buildbot
  IdentityFile ~/.ssh/id_rsa
  Port 2225

Poi digito semplicemente:

ssh rhel6-x86

...per connettermi alla vm.

RHN e gli aggiornamenti

Registrare il sistema con RHN:

sudo rhn_register

Scegliere i default durante la registrazione. Dopo che l'operazione è completata:

sudo yum update

La prima volta che si aggiorna verrà chiesto di importare alcune chiavi GPG da Red Hat. L'aggiornamento potrebbe durare un po', dipende dal numero di aggiornamenti da effettuare e dalla velocità della connessione a internet.

Finito l'aggiornamento, arrestare per poter effettuare alcune copie.

sudo shutdown -h now

L'immagine per la build RPM

qemu-img create -b vm-rhel6-x86-serial.qcow2 -f qcow2 vm-rhel6-x86-build.qcow2
kvm -m 1024 -hda vm-rhel6-x86-build.qcow2 -redir 'tcp:22275::22' -boot c -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic

Attendere il boot del sistema.

Installare i compilatori, etc:

sudo yum groupinstall "Development Tools"
sudo yum install libaio-devel openssl-devel

Se il gruppo "Development Tools" non esiste, le righe seguenti installano i suoi pacchetti:

# Pacchetti obbligatori:
sudo yum install autoconf automake binutils bison flex gcc gcc-c++ gettext
sudo yum install libtool make patch pkgconfig redhat-rpm-config rpm-build

# Pacchetti di default:
sudo yum install byacc cscope ctags cvs diffstat doxygen elfutils gcc-gfortran
sudo yum install git indent intltool patchutils rcs subversion swig systemtap

# Pacchetti opzionali:
sudo yum install ElectricFence ant babel bzr chrpath cmake compat-gcc-34
sudo yum install compat-gcc-34-c++ compat-gcc-34-g77 dejagnu expect gcc-gnat
sudo yum install gcc-java gcc-objc gcc-objc++ imake jpackage-utils libstdc++-docs
sudo yum install mercurial mod_dav_svn nasm perltidy python-docs rpmdevtools
sudo yum install rpmlint systemtap-sdt-devel systemtap-server

Altri pacchetti da installare:

sudo yum install gperf readline-devel ncurses-devel zlib-devel perl perl\(DBI\)

Creare le directory rpm e scaricare l'rpm di 5.0 per shared-compat:

sudo mkdir -vp /usr/src/redhat/SOURCES /usr/src/redhat/SPECS /usr/src/redhat/RPMS /usr/src/redhat/SRPMS
sudo mkdir -vp /srv/shared/yum/CentOS/5/i386/RPMS/
cd /srv/shared/yum/CentOS/5/i386/RPMS/
sudo wget http://mirror.ourdelta.org/yum/CentOS/5/i386/RPMS/MySQL-OurDelta-shared-5.0.87.d10-65.el5.i386.rpm

L'immagine per installare/testare

qemu-img create -b vm-rhel6-x86-serial.qcow2 -f qcow2 vm-rhel6-x86-install.qcow2
kvm -m 1024 -hda vm-rhel6-x86-install.qcow2 -redir 'tcp:22275::22' -boot c -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic

Installare le dipendenze aggiuntive:

sudo yum install perl perl\(DBI\)
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.