Projet

Général

Profil

GCCCompileFarm » Historique » Version 24

Éric Deschamps, 11/09/2012 15:24
ajout de 3 vm

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 1 Laurent GUERBY
h1. GCCCompileFarm
4 2 Laurent GUERBY
5 4 Éric Deschamps
h2. Machines virtuelles demandées
6 4 Éric Deschamps
7 2 Laurent GUERBY
TODO KVM a la demande sur gcc75 et gcc76
8 3 Laurent GUERBY
9 3 Laurent GUERBY
* FreeBSD (diverses versions et 32/64)
10 3 Laurent GUERBY
* RHEL (idem, on a 5 licences RHN)
11 3 Laurent GUERBY
* OpenBSD (idem)
12 3 Laurent GUERBY
* NetBSD (idem)
13 3 Laurent GUERBY
* debian (idem)
14 3 Laurent GUERBY
* ubuntu (idem)
15 3 Laurent GUERBY
* gentoo (idem)
16 3 Laurent GUERBY
17 3 Laurent GUERBY
En non x86/amd64 qemu ?
18 3 Laurent GUERBY
19 15 Laurent GUERBY
* Idée amusante non qemu : s/390 avec l'emulateur Hercules cf "Installing a custom kernel on Debian S/390(wheezy/sid)" http://lists.debian.org/debian-s390/2012/08/msg00001.html
20 3 Laurent GUERBY
* openwrt MIPS
21 3 Laurent GUERBY
* debian/autre ARM
22 4 Éric Deschamps
23 4 Éric Deschamps
h2. Machines virtuelles installées
24 4 Éric Deschamps
25 4 Éric Deschamps
h3. Sur gcc76
26 4 Éric Deschamps
27 7 Éric Deschamps
* FreeBSD 8.3 amd64 : ssh farmuser@freebsd-83-amd64
28 7 Éric Deschamps
* Debian GNU/Linux Squeeze x86 : ssh farmuser@squeeze-x86
29 1 Laurent GUERBY
* OpenBSD 5 / i386 : ssh farmuser@openbsd-5-x86
30 1 Laurent GUERBY
* RedHat Linux Server 6.3 amd64 : ssh farmuser@rhel-63-amd64
31 1 Laurent GUERBY
* NetBSD 5.1.2 amd64 : ssh farmuser@netbsd-512-amd64
32 7 Éric Deschamps
* FreeBSD 9.0 i386 : ssh farmuser@freebsd-90-x86
33 24 Éric Deschamps
* Ubuntu 12.04 LTS AMD64 : ssh farmuser@ubuntu-1204-amd64
34 24 Éric Deschamps
* Debian GNU/Linux Wheezy amd64 : ssh farmuser@debian-7-amd64
35 24 Éric Deschamps
* NetBSD-Current amd64 : ssh farmuser@netbsd-current-amd64
36 4 Éric Deschamps
37 17 Éric Deschamps
h2. Pré-requis sur l'hôte des machines virtuelles (Debian)
38 17 Éric Deschamps
39 17 Éric Deschamps
<pre>
40 18 Éric Deschamps
aptitude install virtinst  virt-top qemu-kvm libvirt-bin
41 17 Éric Deschamps
</pre>
42 17 Éric Deschamps
43 4 Éric Deschamps
h2. Gestion des machines virtuelles
44 4 Éric Deschamps
45 4 Éric Deschamps
*Remarque* : le compte utilisateur doit être membre du *groupe libvirt*.
46 4 Éric Deschamps
47 4 Éric Deschamps
h3. Lister les machines virtuelles
48 4 Éric Deschamps
49 4 Éric Deschamps
*En cours :*
50 4 Éric Deschamps
51 17 Éric Deschamps
Avec virsh :
52 17 Éric Deschamps
53 4 Éric Deschamps
<pre>
54 4 Éric Deschamps
virsh list
55 17 Éric Deschamps
</pre>
56 17 Éric Deschamps
57 17 Éric Deschamps
Autre commande :
58 17 Éric Deschamps
59 17 Éric Deschamps
<pre>
60 17 Éric Deschamps
virt-top
61 4 Éric Deschamps
</pre>
62 4 Éric Deschamps
63 4 Éric Deschamps
*Disponibles :*
64 4 Éric Deschamps
<pre>
65 4 Éric Deschamps
virsh list --all
66 4 Éric Deschamps
</pre>
67 4 Éric Deschamps
68 4 Éric Deschamps
h3. Démarrer une machine virtuelle
69 4 Éric Deschamps
70 4 Éric Deschamps
<pre>
71 4 Éric Deschamps
virsh start nom_vm
72 4 Éric Deschamps
</pre>
73 4 Éric Deschamps
74 4 Éric Deschamps
h3. Arrêter une machine virtuelle
75 4 Éric Deschamps
76 4 Éric Deschamps
<pre>
77 4 Éric Deschamps
virsh shutdown nom_vm
78 4 Éric Deschamps
</pre>
79 5 Éric Deschamps
80 16 Éric Deschamps
h2. Spécificités en fonction des systèmes
81 16 Éric Deschamps
82 16 Éric Deschamps
Voir http://www.linux-kvm.org/page/Guest_Support_Status
83 16 Éric Deschamps
84 5 Éric Deschamps
h2. Installation d'une machine virtuelle
85 5 Éric Deschamps
86 5 Éric Deschamps
Commande virt-install donnée à titre indicatif :
87 5 Éric Deschamps
<pre>
88 5 Éric Deschamps
virt-install --accelerate --hvm --connect qemu:///system --cdrom ~erdesc/isos/debian-6.0.5-i386-netinst.iso -n squeeze-x86 -r 1024 \
89 5 Éric Deschamps
--disk path=/var/lib/libvirt/images/debian-squeeze-x86.qcow2,bus=virtio,size=10,format=qcow2 --vnc
90 5 Éric Deschamps
</pre>
91 5 Éric Deschamps
92 5 Éric Deschamps
Petites remarques :
93 5 Éric Deschamps
* -n permet de donner un nom à la machine virtuelle
94 5 Éric Deschamps
* -r précise la taille mémoire allouée à la VM
95 5 Éric Deschamps
* --disk path=/var/lib/libvirt/images/debian-squeeze-x86.qcow2,bus=virtio,size=10,format=qcow2 : on place par défaut les images dans le répertoire /var/lib/libvirt/images/. Ici on utilise le pilote virtio parce qu'il est généralement fourni sous Linux, donc pour un BSD on préférera ide, sata ou scsi, la taille de l'image est de 10 Go et le format qcow2 est extensible, donc évite de manger les 10Go sur le disque pour rien.
96 8 Éric Deschamps
97 8 Éric Deschamps
h2. Installation d'un machine virtuelle RedHat (RHEL) avec KVM
98 8 Éric Deschamps
99 8 Éric Deschamps
_Petites notes à déplacer plus tard_
100 8 Éric Deschamps
101 8 Éric Deschamps
RedHat documente l'installation des machines virtuelles avec KVM (*** lien ***). 
102 8 Éric Deschamps
103 8 Éric Deschamps
Pour commencer, j'ai eu quelques soucis avec les pilotes virtio pour le disque virtuel et la carte réseau. J'ai _résolu_ le problème en utilisant respectivement un contrôleur IDE et une carte ethernet e1000.
104 8 Éric Deschamps
105 8 Éric Deschamps
Ensuite, une fois l'installation terminée, il faut changer le nom d'hôte, parfois reparamétrer la carte réseau et enfin enregistrer la machine chez RedHat avant de mettre à jour et d'installer de nouveaux paquets.
106 8 Éric Deschamps
107 8 Éric Deschamps
h3. Paramétrage réseau
108 8 Éric Deschamps
109 8 Éric Deschamps
* /etc/sysconfig/network (par exemple)
110 8 Éric Deschamps
<pre>
111 8 Éric Deschamps
NETWORKING=yes
112 8 Éric Deschamps
HOSTNAME=rhel-6.3-amd64.localdomain
113 8 Éric Deschamps
</pre>
114 8 Éric Deschamps
115 8 Éric Deschamps
* /etc/hosts (ajout, toujours par exemple)
116 8 Éric Deschamps
<pre>
117 8 Éric Deschamps
192.168.122.13 rhel-6.3-amd64 rhel-6.3-amd64.localdomain
118 8 Éric Deschamps
</pre>
119 8 Éric Deschamps
120 8 Éric Deschamps
* /etc/sysconfig/network-scripts/ifcfg-eth0 (exemple)
121 8 Éric Deschamps
<pre>
122 8 Éric Deschamps
DEVICE="eth0"
123 8 Éric Deschamps
BOOTPROTO="static"
124 8 Éric Deschamps
IPADDR=192.168.122.13
125 8 Éric Deschamps
BROADCAST=192.168.122.255
126 8 Éric Deschamps
NETMASK=255.255.255.0
127 8 Éric Deschamps
NETWORK=192.168.122.0
128 8 Éric Deschamps
GATEWAY=192.168.122.1
129 8 Éric Deschamps
HWADDR="52:54:00:A8:19:67"
130 8 Éric Deschamps
NM_CONTROLLED="yes"
131 8 Éric Deschamps
ONBOOT="yes"
132 8 Éric Deschamps
TYPE="Ethernet"
133 8 Éric Deschamps
UUID="88376404-9ee2-4455-bee3-fe97f2df9fff"
134 8 Éric Deschamps
</pre>
135 8 Éric Deschamps
136 8 Éric Deschamps
* Mise à jour de la configuration réseau
137 8 Éric Deschamps
138 8 Éric Deschamps
<pre>
139 8 Éric Deschamps
# ifdown eth0
140 8 Éric Deschamps
# ifup eth0
141 8 Éric Deschamps
</pre>
142 8 Éric Deschamps
143 8 Éric Deschamps
h3. Enregistrement de la machine chez RedHat
144 8 Éric Deschamps
145 8 Éric Deschamps
<pre>
146 8 Éric Deschamps
# rhn_register
147 8 Éric Deschamps
</pre>
148 8 Éric Deschamps
149 8 Éric Deschamps
Puis login / mot de passe, suivant, etc.
150 8 Éric Deschamps
151 8 Éric Deschamps
h3. Mise à jour et installation des paquets nécessaires
152 8 Éric Deschamps
153 8 Éric Deschamps
* Mise à jour simple :
154 8 Éric Deschamps
<pre>
155 8 Éric Deschamps
yum update
156 8 Éric Deschamps
</pre>
157 8 Éric Deschamps
158 8 Éric Deschamps
* Installation des paquets nécessaires
159 8 Éric Deschamps
<pre>
160 8 Éric Deschamps
yum groupinstall 'Development Tools'
161 8 Éric Deschamps
</pre>
162 8 Éric Deschamps
163 8 Éric Deschamps
* Autres outils (*** à compléter ***)
164 8 Éric Deschamps
<pre>
165 8 Éric Deschamps
yum install screen
166 8 Éric Deschamps
</pre>
167 10 Éric Deschamps
168 10 Éric Deschamps
h2. Machines virtuelles NetBSD
169 10 Éric Deschamps
170 14 Éric Deschamps
h3. Commande d'installation
171 14 Éric Deschamps
172 14 Éric Deschamps
Exemple pour NetBSD-current (AMD64)!
173 14 Éric Deschamps
174 14 Éric Deschamps
<pre>
175 14 Éric Deschamps
virt-install --accelerate --hvm --connect qemu:///system --cdrom ~erdesc/isos/netbsd-amd64-6.0-beta2.iso -n netbsd-current-amd64 -r 1024 \
176 14 Éric Deschamps
--disk path=/var/lib/libvirt/images/netbsd-current-amd64.qcow2,bus=ide,size=10,format=qcow2 --network network=default,model=ne2k_pci --vnc
177 14 Éric Deschamps
</pre>
178 14 Éric Deschamps
179 13 Éric Deschamps
h3. Démarrage sans ACPI par défaut
180 13 Éric Deschamps
181 13 Éric Deschamps
"Cette page":http://www.ezunix.org/index.php?title=NetBSD_5_on_KVM précise qu'il faut démarrer sans ACPI et sans SMP. Le démarrage sans SMP ni ACPI ayant planté sur la machine virtuelle NetBSD-5.1.2-amd64, j'ai choisi de ne désactiver que l'ACPI.
182 13 Éric Deschamps
183 13 Éric Deschamps
*/boot.cfg* :
184 13 Éric Deschamps
<pre>
185 13 Éric Deschamps
default=3
186 13 Éric Deschamps
</pre>
187 13 Éric Deschamps
188 10 Éric Deschamps
h3. Interface réseau
189 10 Éric Deschamps
190 10 Éric Deschamps
L'interface réseau *rtl8139* par défaut "ne fonctionne pas bien":http://wiki.gcu.info/doku.php?id=linux:kvm_virt-manager_nictype. Il faut la changer par une *ne2k_pci*.
191 10 Éric Deschamps
192 10 Éric Deschamps
Par exemple dans _/etc/libvirt/qemu/netbsd512.xml_ :
193 10 Éric Deschamps
194 10 Éric Deschamps
<pre>
195 10 Éric Deschamps
    <interface type='network'>
196 10 Éric Deschamps
      <mac address='52:54:00:f5:96:fe'/>
197 10 Éric Deschamps
      <source network='default'/>
198 10 Éric Deschamps
      <model type='ne2k_pci'/>
199 10 Éric Deschamps
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
200 10 Éric Deschamps
    </interface>
201 10 Éric Deschamps
</pre>
202 10 Éric Deschamps
203 10 Éric Deschamps
h3. Configuration réseau
204 10 Éric Deschamps
205 10 Éric Deschamps
Si vous avez choisi *DHCP* à l'installation, il faut modifier quelques fichiers pour passer en IP fixe :
206 10 Éric Deschamps
207 10 Éric Deschamps
On désactive DHCP dans */etc/rc.conf* :
208 10 Éric Deschamps
209 10 Éric Deschamps
<pre>
210 10 Éric Deschamps
#(...)
211 10 Éric Deschamps
dhclient=NO
212 10 Éric Deschamps
#dhclient_flags="ne0"
213 10 Éric Deschamps
#(...)
214 10 Éric Deschamps
</pre>
215 10 Éric Deschamps
216 23 Éric Deschamps
Ensuite, on peut paramétrer l'IP fixe dans le fichier _/etc/ifconfig.ne0_ :
217 23 Éric Deschamps
218 23 Éric Deschamps
<pre>
219 23 Éric Deschamps
up
220 23 Éric Deschamps
inet 192.168.122.14
221 23 Éric Deschamps
</pre>
222 23 Éric Deschamps
223 10 Éric Deschamps
On place l'adresse de la passerelle dans */etc/mygate* :
224 10 Éric Deschamps
<pre>
225 10 Éric Deschamps
192.168.122.1
226 10 Éric Deschamps
</pre>
227 10 Éric Deschamps
228 10 Éric Deschamps
Les serveurs DNS se déclarent comme toujours dans */etc/resolv.conf* :
229 10 Éric Deschamps
<pre>
230 10 Éric Deschamps
nameserver 192.168.122.1
231 10 Éric Deschamps
</pre>
232 10 Éric Deschamps
233 10 Éric Deschamps
h3. Serveur SSH
234 10 Éric Deschamps
235 10 Éric Deschamps
Pour lancer le serveur SSH automatiquement, ajouter ceci dans */etc/rc.conf* :
236 10 Éric Deschamps
<pre>
237 10 Éric Deschamps
sshd=YES
238 10 Éric Deschamps
</pre>
239 10 Éric Deschamps
240 10 Éric Deschamps
Pour le lancer à la main une première fois :
241 10 Éric Deschamps
242 10 Éric Deschamps
<pre>
243 11 Éric Deschamps
# /etc/rc.d/sshd start
244 1 Laurent GUERBY
</pre>
245 11 Éric Deschamps
246 11 Éric Deschamps
h3. Installation de logiciels
247 11 Éric Deschamps
248 11 Éric Deschamps
La première chose est de configurer "pkgsrc":http://www.netbsd.org/docs/pkgsrc/using.html pour qu'il sache où trouver les sources des logiciels. Par exemple pour un *NetBSD-5.1.2* sur *amd64* :
249 11 Éric Deschamps
250 11 Éric Deschamps
<pre>
251 11 Éric Deschamps
# export PKG_PATH="http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/amd64/5.1/All"
252 11 Éric Deschamps
</pre>
253 11 Éric Deschamps
254 11 Éric Deschamps
Ensuite on installe "pkgin":http://pkgin.net/ car il facilite grandement l'installation des programmes :
255 11 Éric Deschamps
<pre>
256 11 Éric Deschamps
# pkg_add -v pkgin
257 11 Éric Deschamps
</pre>
258 11 Éric Deschamps
259 11 Éric Deschamps
Une fois installé, il faut configurer les dépôts dans */usr/pkg/etc/pkgin/repositories.conf*. Toujours pour notre exemple :
260 11 Éric Deschamps
261 11 Éric Deschamps
<pre>
262 11 Éric Deschamps
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/5.1/All
263 11 Éric Deschamps
</pre>
264 11 Éric Deschamps
265 11 Éric Deschamps
Ensuite on met à jour la base de *pkgin* :
266 11 Éric Deschamps
267 11 Éric Deschamps
<pre>
268 11 Éric Deschamps
# pkgin update
269 11 Éric Deschamps
</pre>
270 11 Éric Deschamps
271 11 Éric Deschamps
"Exemples d'utilisation de pkgin":http://www.netbsdfr.org/wiki/doku.php?id=trad:start#exemples_d_utilisation
272 11 Éric Deschamps
273 11 Éric Deschamps
Documentation sur pkgin : 
274 11 Éric Deschamps
* http://www.netbsdfr.org/wiki/doku.php?id=trad:start
275 11 Éric Deschamps
* http://www.unixgarden.com/index.php/gnu-linux-magazine/un-pkgin-sans-glace-pour-la-6
276 11 Éric Deschamps
* http://pkgin.net/
277 10 Éric Deschamps
278 20 Éric Deschamps
h2. Machines virtuelles FreeBSD
279 20 Éric Deschamps
280 20 Éric Deschamps
h3. Commande d'installation
281 20 Éric Deschamps
282 20 Éric Deschamps
Exemple pour FreeBSD-9.0 (x86)
283 20 Éric Deschamps
284 20 Éric Deschamps
<pre>
285 20 Éric Deschamps
virt-install --accelerate --hvm --connect qemu:///system --cdrom ~erdesc/isos/FreeBSD-9.0-RELEASE-i386-bootonly.iso -n freebsd-90-x86 -r 1024 \
286 20 Éric Deschamps
--disk path=/var/lib/libvirt/images/freebsd-90-x86.qcow2,bus=ide,size=10,format=qcow2 --network network=default,model=e1000 --vnc
287 20 Éric Deschamps
</pre>
288 20 Éric Deschamps
289 22 Éric Deschamps
h3. Configuration réseau
290 22 Éric Deschamps
291 22 Éric Deschamps
*Remarque* : il faut ajouter un nom de domaine au nom de machine pour que le système démarre convenablement. "local" convient parfaitement. 
292 22 Éric Deschamps
293 22 Éric Deschamps
Dans */etc/rc.conf* :
294 22 Éric Deschamps
295 22 Éric Deschamps
<pre>
296 22 Éric Deschamps
hostname="freebsd-90-x86.local"
297 22 Éric Deschamps
keymap="fr.iso.acc.kbd"
298 22 Éric Deschamps
ifconfig_em0=" inet 192.168.122.18 netmask 0xffffff00"
299 22 Éric Deschamps
defaultrouter="192.168.122.1"
300 22 Éric Deschamps
sshd_enable="YES"
301 22 Éric Deschamps
tcp_extensions="YES"
302 22 Éric Deschamps
</pre>
303 22 Éric Deschamps
304 22 Éric Deschamps
h3. Configuration supplémentaire
305 22 Éric Deschamps
306 22 Éric Deschamps
J'ai lu quelque part, je ne me souviens plus où qu'il faut ajouter ceci au fichier _/boot/loader.conf_ :
307 22 Éric Deschamps
308 22 Éric Deschamps
<pre>
309 22 Éric Deschamps
hw.ata.ata_dma=0
310 22 Éric Deschamps
</pre>
311 22 Éric Deschamps
312 22 Éric Deschamps
h3. Installation de logiciels
313 22 Éric Deschamps
314 22 Éric Deschamps
On utilise les commandes *pkg_add*, *pkg_delete* et *pkg_info*. Par exemple, pour installer bash :
315 22 Éric Deschamps
316 22 Éric Deschamps
<pre>
317 22 Éric Deschamps
pkg_add -r bash
318 22 Éric Deschamps
</pre>
319 22 Éric Deschamps
320 22 Éric Deschamps
Installation des logiciels sur FreeBSD :
321 22 Éric Deschamps
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-overview.html
322 22 Éric Deschamps
323 10 Éric Deschamps
h2. Recherche et résolution de problèmes avec virsh/libvirt
324 10 Éric Deschamps
325 10 Éric Deschamps
Les journaux se trouvent dans */var/log/libvirt/qemu/*.
326 10 Éric Deschamps
327 10 Éric Deschamps
h3. Erreur : cannot acquire state change lock
328 10 Éric Deschamps
329 10 Éric Deschamps
*Exemple* :
330 10 Éric Deschamps
<pre>
331 10 Éric Deschamps
# virsh start netbsd-512-amd64
332 10 Éric Deschamps
error: Failed to start domain netbsd-512-amd64
333 10 Éric Deschamps
error: Timed out during operation: cannot acquire state change lock
334 10 Éric Deschamps
</pre>
335 10 Éric Deschamps
336 10 Éric Deschamps
Il faut relancer libvirtd :
337 10 Éric Deschamps
<pre>
338 10 Éric Deschamps
killall -9 libvirtd
339 10 Éric Deschamps
rm  /var/run/libvirtd.pid
340 10 Éric Deschamps
/etc/init.d/libvirt-bin restart
341 10 Éric Deschamps
</pre>