Projet

Général

Profil

Openstack Installation nouvelle node du cluster » Historique » Version 9

Mehdi Abaakouk, 25/03/2015 00:11

1 1 Mehdi Abaakouk
h1. Openstack Installation nouvelle node du cluster
2 1 Mehdi Abaakouk
3 1 Mehdi Abaakouk
h2. Allocation IPs
4 1 Mehdi Abaakouk
5 1 Mehdi Abaakouk
Sur http://wiki.tetaneutral.net/index.php/Architecture prends des ips dans les réseaux suivant:
6 1 Mehdi Abaakouk
7 1 Mehdi Abaakouk
* 89.234.156.x et 2a01:6600:8083:xx
8 1 Mehdi Abaakouk
* 192.168.3.xx VLAN admin 3175
9 1 Mehdi Abaakouk
* 192.168.128.xx VLAN vPro 128 (port RJ45 de la machine sur untag 128 de switch)
10 1 Mehdi Abaakouk
* 192.168.99.xx VLAN ceph 3199
11 1 Mehdi Abaakouk
12 2 Mehdi Abaakouk
h2. allocation des ports de switch
13 1 Mehdi Abaakouk
14 1 Mehdi Abaakouk
*s4810*
15 1 Mehdi Abaakouk
16 1 Mehdi Abaakouk
Rien à configurer, juste choisir un port libre
17 1 Mehdi Abaakouk
18 1 Mehdi Abaakouk
*s8 ou s9*
19 1 Mehdi Abaakouk
20 2 Mehdi Abaakouk
Choir et configurer un port untag sur le vlan 128
21 1 Mehdi Abaakouk
22 1 Mehdi Abaakouk
h2. Connectique réseau
23 1 Mehdi Abaakouk
24 1 Mehdi Abaakouk
1 cable Fibre de la carte 10G vers le s4810
25 1 Mehdi Abaakouk
1 cable RJ45 de la carte réseau interne (vpro) du PC vers s8 ou s8
26 1 Mehdi Abaakouk
27 1 Mehdi Abaakouk
h2. Configuration DNS
28 1 Mehdi Abaakouk
29 1 Mehdi Abaakouk
Dans le git des zones DNS de ttnn ajouter gX
30 1 Mehdi Abaakouk
31 1 Mehdi Abaakouk
example: https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/bind-zones/revisions/582180e9af2f6fc5aaaf0425f7c3e9e87ab2b117
32 1 Mehdi Abaakouk
33 1 Mehdi Abaakouk
h2. Configuration BIOS de la machine
34 1 Mehdi Abaakouk
35 6 Mehdi Abaakouk
Activer 'PowerOn' On 'AC failure'
36 6 Mehdi Abaakouk
Désactiver 'Alarm/Warn when case open' (Hardware Monitorning)
37 6 Mehdi Abaakouk
Activer 'Boot from LAN/Ethernet'
38 6 Mehdi Abaakouk
Mettre SSD en premier pour l'ordre de BOOT
39 6 Mehdi Abaakouk
Activer 'MEBx selection screen' (VPRO bios screen)
40 6 Mehdi Abaakouk
41 6 Mehdi Abaakouk
42 6 Mehdi Abaakouk
43 3 Mehdi Abaakouk
h2. Configuration VPRO de la machine
44 1 Mehdi Abaakouk
45 1 Mehdi Abaakouk
Faire ce paragraphe: https://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/VPro#First-step
46 1 Mehdi Abaakouk
47 1 Mehdi Abaakouk
Puis sur g4:
48 1 Mehdi Abaakouk
49 1 Mehdi Abaakouk
<pre>
50 1 Mehdi Abaakouk
$ ./vpro_enable_vnc 192.168.128.XXX
51 1 Mehdi Abaakouk
...
52 1 Mehdi Abaakouk
# Vérifier qu'il y a pas de rouge (juste du bleu et violet) ainsi que ceci vers la fin:
53 1 Mehdi Abaakouk
...
54 1 Mehdi Abaakouk
      <g:Is5900PortEnabled>true</g:Is5900PortEnabled>
55 1 Mehdi Abaakouk
      <g:OptInPolicy>false</g:OptInPolicy>
56 1 Mehdi Abaakouk
</pre>
57 5 Mehdi Abaakouk
58 5 Mehdi Abaakouk
h2. Préparation configuration réseau
59 5 Mehdi Abaakouk
60 5 Mehdi Abaakouk
Sur g1, ajouter un block avec un les addresses ips dans le fichier /etc/rc.local
61 5 Mehdi Abaakouk
62 5 Mehdi Abaakouk
<pre>
63 5 Mehdi Abaakouk
ceph_disks_manual_activate["g6"]="9ba884f0-55b2-438d-989f-8db2bf9fe0c7"
64 5 Mehdi Abaakouk
vlan3132_ipv4["g6"]="89.234.156.201"
65 5 Mehdi Abaakouk
vlan3132_ipv6["g6"]="2a01:6600:8083:c900::1"
66 5 Mehdi Abaakouk
vlan3175_ipv4["g6"]="192.168.3.109"
67 5 Mehdi Abaakouk
vlan3199_ipv4["g6"]="192.168.99.243"
68 5 Mehdi Abaakouk
</pre>
69 5 Mehdi Abaakouk
70 5 Mehdi Abaakouk
Ajouter la nouvelle machine dans le fichier /etc/hosts:
71 5 Mehdi Abaakouk
72 5 Mehdi Abaakouk
<pre>
73 5 Mehdi Abaakouk
89.234.156.201 g6.tetaneutral.net g6
74 5 Mehdi Abaakouk
</pre>
75 5 Mehdi Abaakouk
76 5 Mehdi Abaakouk
Sur g1, commiter et diffuser le fichier hosts et rc.local sur les autres machines:
77 5 Mehdi Abaakouk
78 5 Mehdi Abaakouk
<pre>
79 5 Mehdi Abaakouk
cd /root/tools
80 5 Mehdi Abaakouk
./sync-rclocal.sh
81 5 Mehdi Abaakouk
</pre>
82 5 Mehdi Abaakouk
83 5 Mehdi Abaakouk
_Note: celui-ci relance la partie réseau du rc.local mais comme la plupart des ips sont déjà configuré plusieur message 'RTNETLINK answers: File exists' apparaissent_
84 7 Mehdi Abaakouk
85 7 Mehdi Abaakouk
h2. Préparation configuration puppet
86 7 Mehdi Abaakouk
87 7 Mehdi Abaakouk
Sur la machine puppet éditer /etc/puppet/manifests/nodes/opentack.pp et ajouter un block pour la nouvelle machine:
88 7 Mehdi Abaakouk
89 7 Mehdi Abaakouk
<pre>
90 7 Mehdi Abaakouk
node "gX.tetaneutral.net" inherits openstack_node_common {
91 7 Mehdi Abaakouk
  # Configuration du routerid et de l'AS number de cette machine
92 7 Mehdi Abaakouk
  # Il faut aussi mettre la conf bgp de h7 ainsi que les fichiers 
93 7 Mehdi Abaakouk
  # /etc/puppet/manifests/files/openstack/bird.conf.erb et
94 7 Mehdi Abaakouk
  # /etc/puppet/manifests/files/openstack/bird6.conf.erb
95 7 Mehdi Abaakouk
  # pour ajouter cette AS interne
96 7 Mehdi Abaakouk
  ttnn_os_bird {'198.51.100.1': asnum => "65008"}
97 7 Mehdi Abaakouk
98 7 Mehdi Abaakouk
  # Dans le cas d'une moniteur ceph, mais uniquement 3 suffissent, on a déjà g1,g2,g3
99 7 Mehdi Abaakouk
  ttnn_ceph_mon {$::hostname:}
100 7 Mehdi Abaakouk
  # Sinon utilisait:
101 7 Mehdi Abaakouk
  # class{"ttnn_ceph_osd_only": }
102 7 Mehdi Abaakouk
103 7 Mehdi Abaakouk
  # La partie Openstack, l'uuid doit être unique par machine (générer avec uuid-gen)
104 7 Mehdi Abaakouk
  ttnn_os_compute {"9d26ec10-XXXX-XXXX-XXXX-f10ed16d270f": }
105 7 Mehdi Abaakouk
}
106 7 Mehdi Abaakouk
</pre>
107 7 Mehdi Abaakouk
108 7 Mehdi Abaakouk
Puis dans le fichier /etc/puppet/manifests/files/openstack/bird.conf.erb ajouter un nouveau protocol avec le router id choisi au dessus:
109 7 Mehdi Abaakouk
110 7 Mehdi Abaakouk
<pre>
111 7 Mehdi Abaakouk
<% if asnum != "65008" %>
112 7 Mehdi Abaakouk
protocol bgp OPENSTACK_G6 from mesh_bgp{
113 7 Mehdi Abaakouk
         neighbor 89.234.156.201 as 65008;
114 7 Mehdi Abaakouk
}
115 7 Mehdi Abaakouk
<% end -%>
116 7 Mehdi Abaakouk
</pre>
117 7 Mehdi Abaakouk
118 7 Mehdi Abaakouk
Puis dans le fichier /etc/puppet/manifests/files/openstack/bird6.conf.erb ajouter un nouveau protocol avec le router id choisi au dessus:
119 7 Mehdi Abaakouk
120 7 Mehdi Abaakouk
<pre>
121 7 Mehdi Abaakouk
<% if asnum != "65008" %>
122 7 Mehdi Abaakouk
protocol bgp OPENSTACK_G6 from mesh_bgp{
123 7 Mehdi Abaakouk
         neighbor 2a01:6600:8083:c900::1 as 65008;
124 7 Mehdi Abaakouk
}
125 7 Mehdi Abaakouk
<% end -%>
126 7 Mehdi Abaakouk
</pre>
127 7 Mehdi Abaakouk
128 9 Mehdi Abaakouk
h2. Préparation du routage sur h7
129 9 Mehdi Abaakouk
130 9 Mehdi Abaakouk
Dans /etc/rc.local chercher le block 'CEPH / OPENSTACK' et ajouter les routes, example:
131 9 Mehdi Abaakouk
132 9 Mehdi Abaakouk
<pre>
133 9 Mehdi Abaakouk
ip route add 89.234.156.201/32 dev eth0.3132
134 9 Mehdi Abaakouk
ip route add 2a01:6600:8083:c900::/56 dev eth0.3132
135 9 Mehdi Abaakouk
</pre>
136 9 Mehdi Abaakouk
137 9 Mehdi Abaakouk
Executer ces nouvelles lignes manuellement sur h7
138 9 Mehdi Abaakouk
139 9 Mehdi Abaakouk
Puis dans /etc/bird/bird.conf
140 9 Mehdi Abaakouk
141 9 Mehdi Abaakouk
<pre>
142 9 Mehdi Abaakouk
protocol bgp OPENSTACK_G6 from mesh_openstack {
143 9 Mehdi Abaakouk
        neighbor 89.234.156.201 as 65008;
144 9 Mehdi Abaakouk
}
145 9 Mehdi Abaakouk
</pre>
146 9 Mehdi Abaakouk
147 9 Mehdi Abaakouk
et dans /etc/bird/bird6.conf:
148 9 Mehdi Abaakouk
149 9 Mehdi Abaakouk
<pre>
150 9 Mehdi Abaakouk
protocol bgp OPENSTACK_G6 from mesh_openstack {
151 9 Mehdi Abaakouk
        neighbor 2a01:6600:8083:c900::1 as 65008;
152 9 Mehdi Abaakouk
}
153 9 Mehdi Abaakouk
</pre>
154 9 Mehdi Abaakouk
155 9 Mehdi Abaakouk
Reload de bird et bird6:
156 9 Mehdi Abaakouk
157 9 Mehdi Abaakouk
<pre>
158 9 Mehdi Abaakouk
birdc conf
159 9 Mehdi Abaakouk
birdc6 conf
160 9 Mehdi Abaakouk
</pre>
161 9 Mehdi Abaakouk
162 9 Mehdi Abaakouk
163 9 Mehdi Abaakouk
164 9 Mehdi Abaakouk
165 7 Mehdi Abaakouk
h2. Installation de debian sur la nouvelle machine
166 8 Mehdi Abaakouk
167 8 Mehdi Abaakouk
h3. Example de mon (sileht) setup pour faire l'installation:
168 8 Mehdi Abaakouk
169 8 Mehdi Abaakouk
<pre>
170 8 Mehdi Abaakouk
/etc/network/interfaces
171 8 Mehdi Abaakouk
auto eth0
172 8 Mehdi Abaakouk
iface eth0 inet static
173 8 Mehdi Abaakouk
  address 192.168.0.1
174 8 Mehdi Abaakouk
  netmask 255.255.255.0
175 8 Mehdi Abaakouk
176 8 Mehdi Abaakouk
/etc/dnsmasq.d/local.conf 
177 8 Mehdi Abaakouk
interface=eth0
178 8 Mehdi Abaakouk
domain=tetaneutral.net
179 8 Mehdi Abaakouk
dhcp-range=192.168.0.3,192.168.0.253,255.255.255.0,1h
180 8 Mehdi Abaakouk
dhcp-boot=pxelinux.0,pxeserver,192.168.0.1
181 8 Mehdi Abaakouk
dhcp-option=option:router,192.168.0.1
182 8 Mehdi Abaakouk
pxe-service=x86PC, "Install Linux", pxelinux
183 8 Mehdi Abaakouk
enable-tftp
184 8 Mehdi Abaakouk
tftp-root=/srv/tftp
185 8 Mehdi Abaakouk
</pre>
186 8 Mehdi Abaakouk
187 8 Mehdi Abaakouk
Activer le routage et masquerade:
188 8 Mehdi Abaakouk
189 8 Mehdi Abaakouk
<pre>
190 8 Mehdi Abaakouk
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
191 8 Mehdi Abaakouk
sudo iptables -t nat -A POSTROUTING -s "192.168.0.0/24" ! -d "192.168.0.0/24" -j MASQUERADE
192 8 Mehdi Abaakouk
</pre>
193 8 Mehdi Abaakouk
194 8 Mehdi Abaakouk
Script pour download l'installeur PXE debian (sans firmware) /srv/tftp/dl.sh:
195 8 Mehdi Abaakouk
<pre>
196 8 Mehdi Abaakouk
#!/bin/bash -x
197 8 Mehdi Abaakouk
198 8 Mehdi Abaakouk
YOURMIRROR=ftp.fr.debian.org
199 8 Mehdi Abaakouk
ARCH=amd64
200 8 Mehdi Abaakouk
DIST=jessie
201 8 Mehdi Abaakouk
mkdir -p /srv/tftp
202 8 Mehdi Abaakouk
cd /srv/tftp
203 8 Mehdi Abaakouk
204 8 Mehdi Abaakouk
rm -rf netboot.tar.gz Release* SHA* debian-installer version.info pxelinux.0 pxelinux.cfg ldlinux.c32
205 8 Mehdi Abaakouk
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/main/installer-"$ARCH"/current/images/netboot/netboot.tar.gz
206 8 Mehdi Abaakouk
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/main/installer-"$ARCH"/current/images/SHA256SUMS
207 8 Mehdi Abaakouk
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/Release
208 8 Mehdi Abaakouk
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/Release.gpg
209 8 Mehdi Abaakouk
tar -xzf netboot.tar.gz
210 8 Mehdi Abaakouk
</pre>
211 8 Mehdi Abaakouk
212 8 Mehdi Abaakouk
Je remplace provisoirement le cable du vpro par un cable entre mon PC et ce port. 
213 8 Mehdi Abaakouk
214 8 Mehdi Abaakouk
h3. Installation de l'OS
215 8 Mehdi Abaakouk
216 8 Mehdi Abaakouk
Date: CET (Europe/France/Paris)
217 8 Mehdi Abaakouk
Locale: Etat Unis (en_US.UTF-8)
218 8 Mehdi Abaakouk
Clavier: FR
219 8 Mehdi Abaakouk
Partitionement: une seul partition bootable en ext4 de 20G sur le SSD pour /
220 8 Mehdi Abaakouk
Packages: système minimal avec SSH
221 8 Mehdi Abaakouk
222 8 Mehdi Abaakouk
h3. Configuration non puppet de l'OS
223 8 Mehdi Abaakouk
224 8 Mehdi Abaakouk
<pre>
225 8 Mehdi Abaakouk
$ apt-get update
226 8 Mehdi Abaakouk
$ apt-get dist-upgrade
227 8 Mehdi Abaakouk
$ apt-get install sysvinit-core systemd-shim
228 8 Mehdi Abaakouk
  # reboot
229 8 Mehdi Abaakouk
$ apt-get purge systemd
230 8 Mehdi Abaakouk
</pre>
231 8 Mehdi Abaakouk
232 8 Mehdi Abaakouk
Editer /etc/udev/rules.d/70-persistent-net.rules et mettre avoir:
233 8 Mehdi Abaakouk
* les ixgbe en eth0 (celui avec le cable branché) et eth1
234 8 Mehdi Abaakouk
* la e1000e en eth2
235 8 Mehdi Abaakouk
236 8 Mehdi Abaakouk
Installation configuration de openvswitch
237 8 Mehdi Abaakouk
238 8 Mehdi Abaakouk
<pre>
239 8 Mehdi Abaakouk
apt-get install openvswitch-switch 
240 8 Mehdi Abaakouk
modprobe vhost-net
241 8 Mehdi Abaakouk
modprobe tun
242 8 Mehdi Abaakouk
243 8 Mehdi Abaakouk
# On créé un switch br-eth0
244 8 Mehdi Abaakouk
ovs-vsctl add-br br-eth0
245 8 Mehdi Abaakouk
# On rajoute une petite bricole pour openstack 
246 8 Mehdi Abaakouk
ovs-vsctl br-set-external-id br-eth0 bridge-id br-eth0
247 8 Mehdi Abaakouk
# On ajoute le port eth0 dans le switch
248 8 Mehdi Abaakouk
ovs-vsctl add-port br-eth0 eth0  # Si aucun trunk vlan n'est spécifié, c'est un trunk avec tous les vlans 
249 8 Mehdi Abaakouk
250 8 Mehdi Abaakouk
# On créé des interfaces réseau utilisable sur la machine avec des vlans:
251 8 Mehdi Abaakouk
ovs-vsctl add-br vlan3132 br-eth0 3132
252 8 Mehdi Abaakouk
ovs-vsctl add-br vlan3175 br-eth0 3175
253 8 Mehdi Abaakouk
ovs-vsctl add-br vlan3199 br-eth0 3199
254 8 Mehdi Abaakouk
255 8 Mehdi Abaakouk
# On s'assure que eth0 sera toujours up
256 8 Mehdi Abaakouk
ovs-ofctl mod-port br-eth0 eth0 up
257 8 Mehdi Abaakouk
</pre>
258 8 Mehdi Abaakouk
259 8 Mehdi Abaakouk
Copier le fichier /etc/hosts et /etc/rc.local à partir de g1 et supprimer la configuration des ethX du fichier /etc/network/interfaces
260 8 Mehdi Abaakouk
261 8 Mehdi Abaakouk
<pre>
262 8 Mehdi Abaakouk
reboot
263 8 Mehdi Abaakouk
</pre>
264 8 Mehdi Abaakouk
265 8 Mehdi Abaakouk
Vérifier que tous les réseaux ping correctement.
266 8 Mehdi Abaakouk
267 8 Mehdi Abaakouk
(remettre le cable vpro si besoin)