Projet

Général

Profil

GCCCompileFarm » Historique » Version 26

Éric Deschamps, 27/01/2013 13:51
légère modification de la partie sur les VM RedHat

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