Projet

Général

Profil

Libvirt (ancien) » Historique » Version 18

Laurent GUERBY, 11/04/2013 13:43

1 1 Mehdi Abaakouk
h1. Libvirt
2 1 Mehdi Abaakouk
3 12 Mehdi Abaakouk
h2. Resources/Liens
4 12 Mehdi Abaakouk
5 18 Laurent GUERBY
* Virtualisation du routage IPv4 pour les VM http://lists.tetaneutral.net/pipermail/technique/2013-April/000810.html
6 18 Laurent GUERBY
7 12 Mehdi Abaakouk
* libvirt
8 12 Mehdi Abaakouk
9 12 Mehdi Abaakouk
http://builder.virt-tools.org/artifacts/libvirt-virshcmdref/html/index.html
10 12 Mehdi Abaakouk
http://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/chap-Virtualization-Managing_guests_with_virsh.html
11 12 Mehdi Abaakouk
12 12 Mehdi Abaakouk
* virt-install et preseed sans server web et pxe:
13 12 Mehdi Abaakouk
14 12 Mehdi Abaakouk
http://honk.sigxcpu.org/con/Preseeding_Debian_virtual_machines_with_virt_install.html
15 12 Mehdi Abaakouk
16 2 Mehdi Abaakouk
h2. Installation VM sans bridge avec routage static (en /32 pour l'ipv4)
17 1 Mehdi Abaakouk
18 11 Mehdi Abaakouk
Note: tous les fichiers utilisés et créés ne sont peut être pas à jour, voir ici pour les dernières version: http://git.tetaneutral.net/libvirt.git/
19 1 Mehdi Abaakouk
20 11 Mehdi Abaakouk
Le répertoire /etc/libvirt/ttnn cité plustard est géré dans ce git.
21 11 Mehdi Abaakouk
22 1 Mehdi Abaakouk
h3. Configuration de la libvirt
23 1 Mehdi Abaakouk
24 1 Mehdi Abaakouk
On créé un réseau libvirt qui fait rien (déjà fait sur n7):
25 1 Mehdi Abaakouk
26 1 Mehdi Abaakouk
<pre>
27 10 Mehdi Abaakouk
cat > libvirt_dump_network.xml <<EOF
28 1 Mehdi Abaakouk
<network ipv6='yes'>
29 1 Mehdi Abaakouk
<name>dump-net</name>
30 6 Mehdi Abaakouk
<bridge name='dumpbr0' />
31 1 Mehdi Abaakouk
</network>
32 1 Mehdi Abaakouk
EOF
33 1 Mehdi Abaakouk
34 10 Mehdi Abaakouk
virsh net-define libvirt_dump_network.xml
35 1 Mehdi Abaakouk
virsh net-autostart dump-net
36 1 Mehdi Abaakouk
virsh net-start dump-net
37 1 Mehdi Abaakouk
</pre>
38 1 Mehdi Abaakouk
39 4 Mehdi Abaakouk
On créé un hook libvirt (déjà fait sur n7):
40 1 Mehdi Abaakouk
<pre>
41 9 Mehdi Abaakouk
mkdir -p /etc/libvirt/ttnn/hooks
42 9 Mehdi Abaakouk
ln -s /etc/libvirt/ttnn/hooks /etc/libvirt/hooks
43 1 Mehdi Abaakouk
vi /etc/libvirt/hooks/qemu
44 1 Mehdi Abaakouk
----8<--------------->8----
45 1 Mehdi Abaakouk
#!/bin/bash
46 1 Mehdi Abaakouk
47 1 Mehdi Abaakouk
name="$1"
48 1 Mehdi Abaakouk
operation="$2"
49 1 Mehdi Abaakouk
suboperation="$3"
50 1 Mehdi Abaakouk
51 7 Mehdi Abaakouk
[ "$operation" != "start" ] && exit 0
52 1 Mehdi Abaakouk
[ "$suboperation" != "begin" ] && exit 0
53 1 Mehdi Abaakouk
54 1 Mehdi Abaakouk
# get interface from the libvirt xml
55 1 Mehdi Abaakouk
interface=$(cat - | sed -ne "/vnet/s/.*dev='\([^']*\)'.*/\1/gp")
56 1 Mehdi Abaakouk
57 5 Mehdi Abaakouk
[ -f /etc/libvirt/ttnn/${name}.conf ] && source /etc/libvirt/ttnn/${name}.conf
58 5 Mehdi Abaakouk
59 5 Mehdi Abaakouk
[ "$ip" -o "$ip6" ] && brctl delif dumpbr0 $interface
60 1 Mehdi Abaakouk
[ "$ip" ] && ip route add $ip/32 dev $interface
61 1 Mehdi Abaakouk
[ "$ip6" ] && ip route add $ip6/56 dev $interface
62 1 Mehdi Abaakouk
[ "$ip6" ] && ip -6 addr add fe80::31/64 dev $interface
63 1 Mehdi Abaakouk
exit 0
64 1 Mehdi Abaakouk
----8<--------------->8----
65 1 Mehdi Abaakouk
</pre>
66 1 Mehdi Abaakouk
67 1 Mehdi Abaakouk
68 1 Mehdi Abaakouk
h3. Preparation de l'installer
69 1 Mehdi Abaakouk
70 4 Mehdi Abaakouk
Pour une squeeze on met à jour virtinst  (déjà fait sur n7):
71 1 Mehdi Abaakouk
72 1 Mehdi Abaakouk
<pre>
73 9 Mehdi Abaakouk
wget http://ftp.us.debian.org/debian/pool/main/v/virtinst/virtinst_0.600.3-3_all.deb
74 9 Mehdi Abaakouk
dpkg -i virtinst_0.600.3-3_all.deb
75 1 Mehdi Abaakouk
</pre>
76 1 Mehdi Abaakouk
77 4 Mehdi Abaakouk
On install le preseed.cfg attaché à la page dans /etc/libvirt/preseed.cfg  (déjà fait sur n7)
78 1 Mehdi Abaakouk
79 1 Mehdi Abaakouk
h4. Installation d'une VM
80 1 Mehdi Abaakouk
81 4 Mehdi Abaakouk
Creation du disk (déjà fait sur n7):
82 1 Mehdi Abaakouk
<pre>
83 1 Mehdi Abaakouk
lvcreate -n picttn -L 50G /dev/raid5
84 1 Mehdi Abaakouk
</pre>
85 1 Mehdi Abaakouk
86 5 Mehdi Abaakouk
Configuration du routage static:
87 5 Mehdi Abaakouk
88 5 Mehdi Abaakouk
<pre>
89 5 Mehdi Abaakouk
vi /etc/libvirt/ttnn/picttn.conf 
90 16 Mehdi Abaakouk
# le /32 ipv4
91 1 Mehdi Abaakouk
ip="91.224.148.252"
92 16 Mehdi Abaakouk
# le /56 ipv6
93 16 Mehdi Abaakouk
ip6="2a01:6600:8080:FC00::"
94 5 Mehdi Abaakouk
</pre>
95 5 Mehdi Abaakouk
96 8 Mehdi Abaakouk
Lancement de l'installation via le réseau natter de libvirt
97 6 Mehdi Abaakouk
<pre>
98 1 Mehdi Abaakouk
virt-install -n picttn -r 2048 --os-type=linux \
99 8 Mehdi Abaakouk
    --autostart \
100 1 Mehdi Abaakouk
    --disk /dev/raid5/picttn,bus=virtio,cache=none,io=native \
101 8 Mehdi Abaakouk
    --network network=default,model=virtio \
102 1 Mehdi Abaakouk
    --nographics \
103 13 Mehdi Abaakouk
    --noreboot \
104 8 Mehdi Abaakouk
    --wait -1 \
105 1 Mehdi Abaakouk
    --location http://ftp.debian.org/debian/dists/wheezy/main/installer-amd64/ \
106 6 Mehdi Abaakouk
    --serial pty \
107 1 Mehdi Abaakouk
    --initrd-inject /etc/libvirt/ttnn/preseed.cfg \
108 6 Mehdi Abaakouk
    --initrd-inject /etc/libvirt/ttnn/picttn.conf \
109 1 Mehdi Abaakouk
    --initrd-inject /etc/libvirt/ttnn/postinstall.sh \
110 8 Mehdi Abaakouk
    --extra-args "console=ttyS0,9600n8 DEBIAN_FRONTEND=text auto priority=critical hostname=picttn domain=le-pic.org"
111 7 Mehdi Abaakouk
</pre>
112 1 Mehdi Abaakouk
113 8 Mehdi Abaakouk
Une fois l'installation terminée, on change la conf réseau:
114 8 Mehdi Abaakouk
115 1 Mehdi Abaakouk
<pre>
116 14 Mehdi Abaakouk
EDITOR="sed -ie s/default/dump-net/g" virsh edit picttn
117 8 Mehdi Abaakouk
</pre>
118 8 Mehdi Abaakouk
119 8 Mehdi Abaakouk
On peux démarrer la VM
120 8 Mehdi Abaakouk
<pre>
121 8 Mehdi Abaakouk
virsh start picttn
122 3 Mehdi Abaakouk
virsh console picttn
123 1 Mehdi Abaakouk
</pre>
124 1 Mehdi Abaakouk
125 8 Mehdi Abaakouk
Ensuite on peux se connecte à la VM
126 9 Mehdi Abaakouk
<pre>
127 9 Mehdi Abaakouk
ssh root@2a01:6600:8080:FC00::1
128 9 Mehdi Abaakouk
</pre>
129 17 Laurent GUERBY
130 17 Laurent GUERBY
Le /etc/network/interfaces IPv4 après installation
131 17 Laurent GUERBY
132 17 Laurent GUERBY
<pre>
133 17 Laurent GUERBY
iface eth0 inet static
134 17 Laurent GUERBY
    address 91.224.148.xxx
135 17 Laurent GUERBY
    netmask 32
136 17 Laurent GUERBY
    up ip route add 91.224.148.0/32 dev eth0
137 17 Laurent GUERBY
    up ip route add default via 91.224.148.0
138 17 Laurent GUERBY
</pre>