Openstack Installation nouvelle node du cluster » Historique » Version 32
« Précédent -
Version 32/36
(diff) -
Suivant » -
Version actuelle
Mehdi Abaakouk, 17/11/2015 11:12
- Contenu
- Openstack Installation nouvelle node du cluster
- Allocation IPs
- allocation des ports de switch
- Connectique réseau
- Configuration DNS
- Configuration BIOS de la machine
- Configuration VPro de la machine
- Préparation configuration réseau et disque
- Préparation configuration puppet
- Préparation du routage sur h7
- Installation de debian sur la nouvelle machine
- Configuration manuelle (non puppetizé) de l'OS
- Configuration via puppet
- Nagios:
- Vérification:
- Ajouter les disks/OSDs pour ceph:
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 et pas marqué KO (probleme insertion SFP)
s8 ou s9
Choisir 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¶
Sur une carte mere Q87M vPro
# Activer 'PowerOn' On 'AC failure' : important, permet le rallumage automatique du serveur apres coupure electrique- Désactiver 'Alarm/Warn when case open' (Hardware Monitorning)
- Activer 'Boot from LAN/Ethernet'
- Activer 'MEBx selection screen' (VPRO bios screen)
- Mettre SSD en premier pour l'ordre de BOOT
Configuration VPro de la machine¶
Faire ce paragraphe: https://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/VPro#First-step
Puis sur g4 (pour le moment seule machine avec acces VLAN 128) :
$ ./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 et disque¶
Sur g1, ajouter un block avec un les addresses ips dans le fichier /etc/rc.local
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'un moniteur ceph, (uniquement 3 suffissent), on a déjà g1,g2,g3 # ttnn_ceph_mon {$::hostname:} # Sinon pour uniquement des OSD, utiliser: class{"ttnn_ceph_osd_only": } # La partie Openstack, l'uuid doit être unique par machine (a générer avec uuidgen) ttnn_os_compute {"9d26ec10-XXXX-XXXX-XXXX-f10ed16d270f": } }
Ajouter une adresse ip autorisé pour le mysql de openstack:
$mysql_allowed_hosts = [ ... '192.168.3.109', ]
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-upgradeEditer /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 # 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
Supprimer la configuration des ethX du fichier /etc/network/interfaces
Configurer la console serie et vnc vpro:
$ dmesg | grep ttyS.*0xf0e0 [ 0.472164] 0000:00:16.3: ttyS1 at I/O 0xf0e0 (irq = 19, base_baud = 115200) is a 16550A
Dans le fichier /etc/inittab ajouter:
#vpro T2:2345:respawn:/sbin/getty ttyS1 115200 vt100-nav
Dans le fichier /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS1,115200 console=tty0 i915.modeset=0"
Puis
update-grub 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
Puis de nouveau sur la nouvelle machine :
$ 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.
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
Ajouter les disks/OSDs pour ceph:¶
$ ceph-disk prepare --zap-disk --cluster-uuid 1fe74663-8dfa-486c-bb80-3bd94c90c967 --fs-type=ext4 /dev/sdX $ smartctl --smart=on /dev/sdX # Pour le monitoring. $ ceph osd crush add osd.<ID> 0 root=default host=g3 ou pour les ssds: $ ceph osd crush add osd.<ID> 0 root=ssd host=g3-ssd $ /root/tools/ceph-reweight-osds.sh osd.<ID>
Plus d'information ici: Openstack_Installation_TTNN