Configurare Buildbot per le Macchine Virtuali - Red Hat 6 x86
Contents
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\)