4 231
modifications
(→node 2) |
(→node 2) |
||
(41 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
cluster de 2 nodes : node1 ayant comme ip principale 88.88.88.88 et node2 ayant comme ip principale 99.99.99.99 | [[Category:serveur]] | ||
[[Category:debian]] | |||
[[Category:virtualisation]] | |||
cluster de 2 nodes : node1 ayant comme ip principale 88.88.88.88 et node2 ayant comme ip principale 99.99.99.99<br> | |||
Valable pour proxmox 2.x à proxmox 5.x | |||
=node 1= | =node 1= | ||
Ligne 15 : | Ligne 20 : | ||
Name = node1 | Name = node1 | ||
AddressFamily = ipv4 | AddressFamily = ipv4 | ||
#BindToAddress = x.x.x.x | |||
Device = /dev/net/tun | Device = /dev/net/tun | ||
Mode = switch | Mode = switch | ||
ConnectTo = node2 | |||
TcpOnly=no | |||
IndirectData=no | |||
</pre> | </pre> | ||
Ligne 33 : | Ligne 42 : | ||
#!/bin/bash | #!/bin/bash | ||
/sbin/ | /sbin/ip link set vpn up | ||
/sbin/ip addr add 10.10.10.1 dev vpn | /sbin/ip addr add 10.10.10.1/24 dev vpn | ||
/sbin/ip route add 10.10.10.0/24 dev vpn | /sbin/ip route add 10.10.10.0/24 dev vpn | ||
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev vpn | /sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev vpn | ||
Ligne 42 : | Ligne 51 : | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
/sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev | /sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev vpn | ||
/sbin/ | /sbin/ip link set vpn down | ||
</pre> | </pre> | ||
Rendez ces deux fichiers executables : | Rendez ces deux fichiers executables : | ||
<pre>chmod +x /etc/tinc/vpn/tinc-*</pre> | <pre>chmod +x /etc/tinc/vpn/tinc-*</pre> | ||
Ajoutez le lancement du vpn : | |||
<pre>echo vpn >> /etc/tinc/nets.boot</pre> | |||
=node 2= | =node 2= | ||
Ligne 61 : | Ligne 73 : | ||
Créez le fichier <code>/etc/tinc/vpn/tinc.conf</code> contenant : | Créez le fichier <code>/etc/tinc/vpn/tinc.conf</code> contenant : | ||
<pre> | <pre> | ||
Name = | Name = node2 | ||
AddressFamily = ipv4 | AddressFamily = ipv4 | ||
#BindToAddress = x.x.x.x | |||
Device = /dev/net/tun | Device = /dev/net/tun | ||
Mode = switch | Mode = switch | ||
ConnectTo = node1 | |||
TcpOnly=no | |||
IndirectData=no | |||
</pre> | </pre> | ||
Créez le fichier /etc/tinc/vpn/hosts/ | Créez le fichier /etc/tinc/vpn/hosts/node2 | ||
<pre> | <pre> | ||
Address = 99.99.99.99 | Address = 99.99.99.99 | ||
Ligne 74 : | Ligne 90 : | ||
</pre> | </pre> | ||
Nous allons maintenant générer la paire de clé de | Nous allons maintenant générer la paire de clé de node2. Tapez simplement la commande suivante et validez a chaque question : | ||
<pre>tincd -n vpn -K4096</pre> | <pre>tincd -n vpn -K4096</pre> | ||
Ligne 81 : | Ligne 97 : | ||
#!/bin/bash | #!/bin/bash | ||
/sbin/ | /sbin/ip link set vpn up | ||
/sbin/ip addr add 10.10.10.2 dev vpn | /sbin/ip addr add 10.10.10.2/24 dev vpn | ||
/sbin/ip route add 10.10.10.0/24 dev vpn | /sbin/ip route add 10.10.10.0/24 dev vpn | ||
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev vpn | /sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev vpn | ||
Ligne 90 : | Ligne 106 : | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
/sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev | /sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev vpn | ||
/sbin/ | /sbin/ip link set vpn down | ||
</pre> | </pre> | ||
Rendez ces deux fichiers executables : | Rendez ces deux fichiers executables : | ||
<pre>chmod +x /etc/tinc/vpn/tinc-*</pre> | <pre>chmod +x /etc/tinc/vpn/tinc-*</pre> | ||
Ajoutez le lancement du vpn : | |||
<pre>echo vpn >> /etc/tinc/nets.boot</pre> | |||
=Synchronisez la configuration des deux nodes= | |||
Copiez le fichier <code>/etc/tinc/vpn/hosts/node1</code> de <code>node1</code> vers <code>/etc/tinc/vpn/hosts/</code> sur <code>node2</code> | |||
Copiez le fichier <code>/etc/tinc/vpn/hosts/node2</code> de <code>node2</code> vers <code>/etc/tinc/vpn/hosts/</code> sur <code>node1</code> | |||
=Test de la configuration= | |||
Ajoutez ceci dans <code>/etc/hosts</code> sur les deux nodes : | |||
<pre> | |||
10.10.10.1 node1 | |||
10.10.10.2 node2 | |||
</pre> | |||
Sur les deux nodes : | |||
<pre>systemctl start tinc@vpn</pre> | |||
Installez omping pour tester le multicast (sur les deux nodes) : | |||
<pre>aptitude install omping</pre> | |||
Lancez cette commande sur les deux nodes | |||
<pre>omping node1 node2</pre> | |||
=Lancement automatique= | |||
Si tout fonctionne, nous allons configurer tinc pour se lancer automatiquement au démarrage, et ce avant corosync. | |||
<pre>systemctl edit --full tinc@vpn.service</pre> | |||
et ajoutez la ligne suivante dans la section <code>[Unit]</code> : | |||
<pre>Before=corosync.service</pre> | |||
Puis activez le lancement automatique de notre lien tinc "vpn" : | |||
<pre>systemctl enable tinc@vpn</pre> | |||
Puis recharger la configuration de systemd : | |||
<pre>systemctl daemon-reload</pre> | |||
=Création du cluster= | |||
Attention : si vous avez désactivé le login ssh root par password il faut le réactiver obligatoirement car proxmox force le login par password lors de la création du cluster ; vous pourrez à nouveau le désactiver une fois le cluster créé. | |||
==Sur node1== | |||
<pre>pvecm create <nom-du-cluster></pre> | |||
<pre>pvecm status</pre> | |||
Vérifiez notamment que vous avez bien la ligne : | |||
<pre>Node addresses: 10.10.10.1</pre> | |||
==Sur node2== | |||
Pour connecter node2 au cluster vous devez pouvoir vous connecter à l'interface proxmox avec l'utilisateur root@pam avec le mot-de-passe. Si vous l'aviez désactivé, réactivez le temporairement. | |||
Pour lancer l'ajout : | |||
<pre>pvecm add node1</pre> | |||
<pre>pvecm nodes | |||
Node Sts Inc Joined Name | |||
1 M 16 2013-08-23 22:46:09 node1 | |||
2 M 12 2013-08-23 22:46:09 node2 | |||
</pre> | |||
=Suppression d'un node= | |||
Avant de lancer la commande de suppression, vous devez impérativement couper la machine que vous souhaitez supprimer du cluster et vous assurer qu'elle ne redémarre à aucun moment sur proxmox (ou du moins pas sur cette installation de proxmox) car elle rejoindrait à nouveau le cluster. Si la machine rejoint le cluster après avoir été supprimé du cluster, vous risqueriez de flinguer totalement le cluster.<br> | |||
Dans l'idéal, passez la machine en mode rescue puis supprimez la configuration de tinc, ou arrêter la complètement. | |||
Pour supprimer la machine node5 du cluster, lancez sur n'importe quel autre node : | |||
<pre>pvecm delnode node5</pre> | |||
La commande ne retourne aucune confirmation. Si vous lancez <code>pvecm status</code>, vous devriez voir la ligne <code>Nodes:</code> décrémentée de 1. | |||
Pour supprimer définitivement les fichiers de configurations du node, et qu'il ne soit plus affiché dans la gui : | |||
<pre>rm -rf /etc/pve/nodes/node5</pre> | |||
=Afficher les informations du lien tinc= | |||
Le démon tinc permet egalement d'obtenir des informations plus détaillées sur le statut du lien : | |||
<pre>tincd -n <nom> -kUSR2</pre> | |||
Les informations seront dans le syslog | |||
=Note sur la gestion du démon tinc par systemd sous debian= | |||
Sous debian avec systemd, une unit par défaut est créée (<code>tinc.service</code>) mais ne reflete pas réellement le statut de votre démon tinc. Elle est utilisée pour propager les commandes stop, restart et reload à tous les démons tinc que vous pourriez lancer. | |||
Si vous créez deux VPN différents dans <code>/etc/tinc/vpnA/</code> et <code>/etc/tinc/vpnB/</code>, il vous faudra les activer avec : | |||
<pre> | |||
systemctl enable tinc@vpnA.service | |||
systemctl enable tinc@vpnB.service | |||
</pre> | |||
Puis vous pourrez gérer indépendamment vpnA ou vpnB en utilisant les noms complets, par exemple : | |||
<pre> | |||
systemctl status tinc@vpnA.service | |||
systemctl status tinc@vpnB.service | |||
</pre> | |||
L'unit <code>tinc.service</code> permet de propager les commandes stop, restart et reload à l'ensemble des démons tinc. Ainsi, <code>systemctl stop tinc.service</code> provoquera l'arrêt de <code>tinc@vpnA.service</code> et <code>tinc@vpnB.service</code> | |||
=Documentations tinc= | |||
* Pour /etc/tinc/tinc.conf : http://www.tinc-vpn.org/documentation/Main-configuration-variables.html#Main-configuration-variables | |||
* Pour /etc/tinc/vpn/hosts/yourhost : http://www.tinc-vpn.org/documentation/Host-configuration-variables.html#Host-configuration-variables |