Openstack Installation nouvelle node du cluster » Historique » Version 12
« Précédent -
Version 12/36
(diff) -
Suivant » -
Version actuelle
Mehdi Abaakouk, 25/03/2015 00:19
Openstack Installation nouvelle node du cluster¶
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
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
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
Configuration DNS¶
Dans le git des zones DNS de ttnn ajouter gX
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)
Configuration VPRO de la machine¶
Faire ce paragraphe: https://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/VPro#First-step
Puis sur g4:
$ ./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>
Préparation configuration réseau¶
Sur g1, ajouter un block avec un les addresses ips dans le fichier /etc/rc.local
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"
Ajouter la nouvelle machine dans le fichier /etc/hosts:
89.234.156.201 g6.tetaneutral.net g6
Sur g1, commiter et diffuser le fichier hosts et rc.local sur les autres machines:
cd /root/tools ./sync-rclocal.sh
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
Préparation configuration puppet¶
Sur la machine puppet éditer /etc/puppet/manifests/nodes/opentack.pp et ajouter un block pour la nouvelle machine:
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": } }
Puis dans le fichier /etc/puppet/manifests/files/openstack/bird.conf.erb ajouter un nouveau protocol avec le router id choisi au dessus:
<% if asnum != "65008" %> protocol bgp OPENSTACK_G6 from mesh_bgp{ neighbor 89.234.156.201 as 65008; } <% end -%>
Puis dans le fichier /etc/puppet/manifests/files/openstack/bird6.conf.erb ajouter un nouveau protocol avec le router id choisi au dessus:
<% if asnum != "65008" %> protocol bgp OPENSTACK_G6 from mesh_bgp{ neighbor 2a01:6600:8083:c900::1 as 65008; } <% end -%>
Préparation du routage sur h7¶
Dans /etc/rc.local chercher le block 'CEPH / OPENSTACK' et ajouter les routes, example:
ip route add 89.234.156.201/32 dev eth0.3132 ip route add 2a01:6600:8083:c900::/56 dev eth0.3132
Executer ces nouvelles lignes manuellement sur h7
Puis dans /etc/bird/bird.conf
protocol bgp OPENSTACK_G6 from mesh_openstack { neighbor 89.234.156.201 as 65008; }
et dans /etc/bird/bird6.conf:
protocol bgp OPENSTACK_G6 from mesh_openstack { neighbor 2a01:6600:8083:c900::1 as 65008; }
Reload de bird et bird6:
birdc conf birdc6 conf
Installation de debian sur la nouvelle machine¶
Example de mon (sileht) setup pour faire l'installation:¶
/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
Activer le routage et masquerade:
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
Script pour download l'installeur PXE debian (sans firmware) /srv/tftp/dl.sh:
#!/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
Je remplace provisoirement le cable du vpro par un cable entre mon PC et ce port.
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
Configuration manuelle (non puppetizé) de l'OS¶
$ apt-get update $ apt-get dist-upgrade $ apt-get install sysvinit-core systemd-shim # reboot $ apt-get purge systemdEditer /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
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
Copier le fichier /etc/hosts et /etc/rc.local à partir de g1 et supprimer la configuration des ethX du fichier /etc/network/interfaces
reboot
Vérifier que tous les réseaux ping correctement.
(remettre le cable vpro si besoin)
Configuration via puppet¶
Sur la nouvelle machine:
$ apt-get install puppet $ puppet agent --enable $ puppet agent -vt --server puppet.tetaneutral.net --certname g6.tetaneutral.net --pluginsync Info: Caching certificate for ca Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml Info: Creating a new SSL certificate request for g6.tetaneutral.net Info: Certificate Request fingerprint (SHA256): AE:72:47:40:A0:E2:F4:59:BA:39:FA:3D:C2:A7:C9:1B:9F:87:A5:B7:65:3A:F9:D4:DE:AF:E2:A3:02:41:0F:2E Info: Caching certificate for ca Exiting; no certificate found and waitforcert is disabled
Sur le puppetmaster:
$ puppet ca sign g6.tetaneutral.net
$ puppet agent -vt --server puppet.tetaneutral.net --certname g6.tetaneutral.net --pluginsync $ puppet agent -vt --server puppet.tetaneutral.net --certname g6.tetaneutral.net --pluginsync $ puppet agent -vt --server puppet.tetaneutral.net --certname g6.tetaneutral.net --pluginsync
Il ne doit plus y avoir d'erreur la 3°/4° fois.
Petit fix temporaire pour la conf de libvirt:- taper la commande suivante sur g1 pour récuperer le clé ceph de libvirt:
virsh secret-get-value 1fe74663-8dfa-486c-bb80-3bd94c90c967
- la mettre sur la nouvelle machine:
virsh secret-set-value 1fe74663-8dfa-486c-bb80-3bd94c90c967 'BLABLABLA'
Nagios:¶
ajouter la machine dans nagios, prendre example sur une autre machine du même genre (openstack+osd ou openstack+osd+mon)
Vérification:¶
nova service-list | grep g6 : | 12 | nova-compute | g6 | nova | enabled | up | 2015-03-24T23:17:25.000000 | None |
Doit y avoir la nouvelle machine 'up' et 'enabled'
neutron agent-list | grep g6 | 4dfd58c4-4959-423a-9c9e-2eb31c75f04b | Open vSwitch agent | g6 | :-) | True | neutron-openvswitch-agent | | b5733323-9eff-4956-8b8e-4a5764ff7987 | Linux Routed Agent | g6 | :-) | True | neutron-linuxrouted-agent |
Doit y avoir 2 fois la machine 'alive :-)' et admin_state_up True, 1 fois pour neutron-linuxrouted-agent et 1 fois neutron-openvswitch-agent