Projet

Général

Profil

Openstack Installation nouvelle node du cluster » Historique » Version 8

Version 7 (Mehdi Abaakouk, 24/03/2015 23:45) → Version 8/36 (Mehdi Abaakouk, 25/03/2015 00:05)

h1. Openstack Installation nouvelle node du cluster

h2. Allocation IPs

Sur http://wiki.tetaneutral.net/index.php/Architecture prends des ips dans les réseaux suivant:

* 89.234.156.x et 2a01:6600:8083:xx
* 192.168.3.xx VLAN admin 3175
* 192.168.128.xx VLAN vPro 128 (port RJ45 de la machine sur untag 128 de switch)
* 192.168.99.xx VLAN ceph 3199

h2. allocation des ports de switch

*s4810*

Rien à configurer, juste choisir un port libre

*s8 ou s9*

Choir et configurer un port untag sur le vlan 128

h2. Connectique réseau

1 cable Fibre de la carte 10G vers le s4810
1 cable RJ45 de la carte réseau interne (vpro) du PC vers s8 ou s8

h2. Configuration DNS

Dans le git des zones DNS de ttnn ajouter gX

example: https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/bind-zones/revisions/582180e9af2f6fc5aaaf0425f7c3e9e87ab2b117

h2. Configuration BIOS de la machine

Activer 'PowerOn' On 'AC failure'
Désactiver 'Alarm/Warn when case open' (Hardware Monitorning)
Activer 'Boot from LAN/Ethernet'
Mettre SSD en premier pour l'ordre de BOOT
Activer 'MEBx selection screen' (VPRO bios screen)

h2. Configuration VPRO de la machine

Faire ce paragraphe: https://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/VPro#First-step

Puis sur g4:

<pre>
$ ./vpro_enable_vnc 192.168.128.XXX
...
# Vérifier qu'il y a pas de rouge (juste du bleu et violet) ainsi que ceci vers la fin:
...
<g:Is5900PortEnabled>true</g:Is5900PortEnabled>
<g:OptInPolicy>false</g:OptInPolicy>
</pre>

h2. Préparation configuration réseau

Sur g1, ajouter un block avec un les addresses ips dans le fichier /etc/rc.local

<pre>
ceph_disks_manual_activate["g6"]="9ba884f0-55b2-438d-989f-8db2bf9fe0c7"
vlan3132_ipv4["g6"]="89.234.156.201"
vlan3132_ipv6["g6"]="2a01:6600:8083:c900::1"
vlan3175_ipv4["g6"]="192.168.3.109"
vlan3199_ipv4["g6"]="192.168.99.243"
</pre>

Ajouter la nouvelle machine dans le fichier /etc/hosts:

<pre>
89.234.156.201 g6.tetaneutral.net g6
</pre>

Sur g1, commiter et diffuser le fichier hosts et rc.local sur les autres machines:

<pre>
cd /root/tools
./sync-rclocal.sh
</pre>

_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_

h2. Préparation configuration puppet

Sur la machine puppet éditer /etc/puppet/manifests/nodes/opentack.pp et ajouter un block pour la nouvelle machine:

<pre>
node "gX.tetaneutral.net" inherits openstack_node_common {
# Configuration du routerid et de l'AS number de cette machine
# Il faut aussi mettre la conf bgp de h7 ainsi que les fichiers
# /etc/puppet/manifests/files/openstack/bird.conf.erb et
# /etc/puppet/manifests/files/openstack/bird6.conf.erb
# pour ajouter cette AS interne
ttnn_os_bird {'198.51.100.1': asnum => "65008"}

# Dans le cas d'une moniteur ceph, mais uniquement 3 suffissent, on a déjà g1,g2,g3
ttnn_ceph_mon {$::hostname:}
# Sinon utilisait:
# class{"ttnn_ceph_osd_only": }

# La partie Openstack, l'uuid doit être unique par machine (générer avec uuid-gen)
ttnn_os_compute {"9d26ec10-XXXX-XXXX-XXXX-f10ed16d270f": }
}
</pre>

Puis dans le fichier /etc/puppet/manifests/files/openstack/bird.conf.erb ajouter un nouveau protocol avec le router id choisi au dessus:

<pre>
<% if asnum != "65008" %>
protocol bgp OPENSTACK_G6 from mesh_bgp{
neighbor 89.234.156.201 as 65008;
}
<% end -%>
</pre>

Puis dans le fichier /etc/puppet/manifests/files/openstack/bird6.conf.erb ajouter un nouveau protocol avec le router id choisi au dessus:

<pre>
<% if asnum != "65008" %>
protocol bgp OPENSTACK_G6 from mesh_bgp{
neighbor 2a01:6600:8083:c900::1 as 65008;
}
<% end -%>
</pre>



h2. Installation de debian sur la nouvelle machine

h3. Example de mon (sileht) setup pour faire l'installation:

<pre>
/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0

/etc/dnsmasq.d/local.conf
interface=eth0
domain=tetaneutral.net
dhcp-range=192.168.0.3,192.168.0.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.0.1
dhcp-option=option:router,192.168.0.1
pxe-service=x86PC, "Install Linux", pxelinux
enable-tftp
tftp-root=/srv/tftp
</pre>

Activer le routage et masquerade:

<pre>
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s "192.168.0.0/24" ! -d "192.168.0.0/24" -j MASQUERADE
</pre>

Script pour download l'installeur PXE debian (sans firmware) /srv/tftp/dl.sh:
<pre>
#!/bin/bash -x

YOURMIRROR=ftp.fr.debian.org
ARCH=amd64
DIST=jessie
mkdir -p /srv/tftp
cd /srv/tftp

rm -rf netboot.tar.gz Release* SHA* debian-installer version.info pxelinux.0 pxelinux.cfg ldlinux.c32
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/main/installer-"$ARCH"/current/images/netboot/netboot.tar.gz
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/main/installer-"$ARCH"/current/images/SHA256SUMS
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/Release
wget -q http://"$YOURMIRROR"/debian/dists/${DIST}/Release.gpg
tar -xzf netboot.tar.gz
</pre>

Je remplace provisoirement le cable du vpro par un cable entre mon PC et ce port.

h3. Installation de l'OS

Date: CET (Europe/France/Paris)
Locale: Etat Unis (en_US.UTF-8)
Clavier: FR
Partitionement: une seul partition bootable en ext4 de 20G sur le SSD pour /
Packages: système minimal avec SSH

h3. Configuration non puppet de l'OS

<pre>
$ apt-get update
$ apt-get dist-upgrade
$ apt-get install sysvinit-core systemd-shim
# reboot
$ apt-get purge systemd
</pre>

Editer /etc/udev/rules.d/70-persistent-net.rules et mettre avoir:
* les ixgbe en eth0 (celui avec le cable branché) et eth1
* la e1000e en eth2

Installation configuration de openvswitch

<pre>
apt-get install openvswitch-switch
modprobe vhost-net
modprobe tun

# On créé un switch br-eth0
ovs-vsctl add-br br-eth0
# On rajoute une petite bricole pour openstack
ovs-vsctl br-set-external-id br-eth0 bridge-id br-eth0
# On ajoute le port eth0 dans le switch
ovs-vsctl add-port br-eth0 eth0 # Si aucun trunk vlan n'est spécifié, c'est un trunk avec tous les vlans

# On créé des interfaces réseau utilisable sur la machine avec des vlans:
ovs-vsctl add-br vlan3132 br-eth0 3132
ovs-vsctl add-br vlan3175 br-eth0 3175
ovs-vsctl add-br vlan3199 br-eth0 3199

# On s'assure que eth0 sera toujours up
ovs-ofctl mod-port br-eth0 eth0 up
</pre>

Copier le fichier /etc/hosts et /etc/rc.local à partir de g1 et supprimer la configuration des ethX du fichier /etc/network/interfaces

<pre>
reboot
</pre>

Vérifier que tous les réseaux ping correctement.

(remettre le cable vpro si besoin)