add a new libvirt hypervisor #34
Labels
No Label
Declaration of interest
Depencency contribution
Dispute
Expense
Gna! service
Improve Gna!
Income
Shared
No Milestone
No Assignees
1 Participants
Notifications
Total Time Spent: 22 hours 45 minutes
Due Date
easter-eggs
22 hours 45 minutes
No due date set.
Dependencies
No dependencies set.
Reference: Gna/organization#34
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
The internal Easter-eggs ticket is copy/pasted here for transparency purposes. The content is in French because it is the language used by the Easter-eggs sysadmin team.
Followup of https://gitea.gna.org/Hostea/organization/issues/32
La prochaine étape de ce ticket consiste à attribuer un pool d'IPs publiques à l'hyperviseur pec-hyp-01.
Proposition :
Les IPs sont dans le réseau 37.9.142.0/24 associé à un vlan 901
Attribution des IPs:
pec-hyp-01: 37.9.142.2
VIP sur les fw-pa2-* : fw-pa2-v901 : 37.9.142.1
VMS : 37.9.142.3 -> 37.9.142.254
Pour ce faire :
Déclarer le réseau 37.9.142.0/24 associé au vlan 901 dans racktables
Sur fw-pa2-01 et fw-pa2-02, ajouter une interface bond1.901 dans /etc/network/interfaces :
auto bond1.901
iface bond1.901 inet manual
post-up ifconfig bond1.901 up
pre-down ifconfig bond1.901 down
Sur fw-pa2-vip, ajouter une VIP pacemaker :
crm configure primitive p_vip_901 ocf💓IPaddr2
params ip="37.9.142.1" cidr_netmask="24" broadcast="37.9.142.255" nic="bond1.901"
meta migration-threshold="2"
op start interval="0" timeout="60s"
op stop interval="0" timeout="60s"
op monitor interval="15s" timeout="60s"
-A FORWARD -d 37.9.142.0/24 -o bond1.901 -m state --state NEW -j ACCEPT
-A OUTPUT -d 37.9.142.0/24 -o bond1.901 -m state --state NEW -j ACCEPT
Sur pec-hyp-01, configurer une interface avec l'IP 37.9.142.2. Ajouter en route par défaut 37.9.142.1
Sur sw-pa2-*, configurer le vlan 901 à la place du vlan 504 :
les ports 21, 22 et 34 doivent autoriser en trunk le Vlan 901.
Configurer les tables de routage sur les cr-pa2 (+ ospf)
Sur pec-hyp-01, Configurer le réseau pour les VMs : ajouter un bridge
@Arnaud, @Manu, est-ce que vous voyez d'autres choses à faire ?
Tâches réalisées :
Tâche réalisée :
Ajout d'une vip sur les parefeu de pa2
Tâches réalisée :
Test de déploiement sur l'hyperviseur avec enough (cf https://forum.gna.org/t/provide-a-libvirt-hypervisor-for-the-fleet/157/4 [Ouvrir l'URL])
Mise en place de la supervision, des sauvegardes et de la métrologie (il reste à créer une nouvelle organisation dans grafana)
Debug du problème de résolution DNS lors de l'utilisation de virt-builder.
La commande problématique est :
'virt-builder' 'debian-11' '--no-cache' '--output' '/var/lib/libvirt/images/enough/l.gna.org/debian-11.qcow2' '--format' 'qcow2' '--size' '6G' '--run-command' 'apt-get --allow-releaseinfo-change update' '--install' 'sudo' '--root-password' 'disabled' '--run-command' 'dpkg-reconfigure --frontend=noninteractive openssh-server' '--run-command' 'useradd -s /bin/bash -m debian || true ; echo "debian ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-debian'
2 resolvers were configured on the hypervisor but the access to the first one is not authorized and the second one is not tried when DSN queries are launched from the supermin appliance used by virt-builder. I have left the only resolver that works for the moment.
@brenard
pas mal de mails bloqués dans la mailq de ce serveur.
À priori, problème de parefeu et des config sudo a revoir (si ça pas encore été fait). Par ailleurs, je suis intervenu car l'utilisateur local enough n'avait pas d'alias mail : j'en ai mis un en place vers root, donc eeadmin, donc supervision@easter-eggs.com.
J'ai ajouté une règle sur les parefeu pour autoriser l'envoi de mails vers le mx ee.
https://forum.gna.org/t/provide-a-libvirt-hypervisor-for-the-fleet/157/13
https://forum.gna.org/t/provide-a-libvirt-hypervisor-for-the-fleet/157/14 [Ouvrir l'URL]
And now it obtains an IP from the expected range 🎉 one step forward.
[ 4.9] Installing firstboot command: env PORT=22 ROUTED=enp1s0 NOT_ROUTED=enp2s0 UNCONFIGURED=noname bash -x /root/network.sh
try-host: creating host
Starting install...
Domain creation completed.
try-host: waiting for ipv4 to be allocated
Libvirt.get_ipv4: interfaceAddresses returned {}, Retrying in 1 seconds...
Libvirt.get_ipv4: interfaceAddresses returned {}, Retrying in 2 seconds...
Libvirt.get_ipv4: interfaceAddresses returned {}, Retrying in 4 seconds...
Libvirt.get_ipv4: interfaceAddresses returned {}, Retrying in 8 seconds...
try-host: waiting for 37.9.143.6:22 to come up
Check if SSH is available on 37.9.143.6:22
SSH.wait_for_ssh: [Errno 113] No route to host, Retrying in 1 seconds...
The firewall is probably blocking some more and preventing communication with port 22.
En fait c'était un problème au niveau de la configuration du virtual network enough-ext. L'IP du bridge doit être dans le réseau indiqué par le netmask.
Cette conf fonctionne :
enough-ext 12152894-88c7-4ac3-8a84-6837c81cac46Before going into this, it would simplify the setup if the hypervisor itself did not use an IP from the 37.9.143.x range. So that firewall rules specific to 37.9.143.x for the purpose of allowing access to the VMs are independent of the firewall rules that relate to the hypervisor.
What do you think?
Effectivment, ça nous faciliterait la tâche, au niveau de la définition du réseau virtuel enough-ext aussi. J'ai fait quelques essais en gardant le même réseau mais libvirt bloque quand il détecte que l'hyperviseur a déjà une IP sur le réseau qu'on essaie de créer :
root@gna-hyp-01:~# virsh net-start --network enough-ext
error: Failed to start network enough-ext
error: internal error: Network is already in use by interface bond0
27/10/2022 | 09:45:09 rlaguerre: root@gna-hyp-01:~# virsh net-dumpxml --network enough-ext
enough-ext
12152894-88c7-4ac3-8a84-6837c81cac46
=> J'ai fait ça : l'IP de l'hyperviseur est 37.9.139.9 résolvable par gna-hyp-01.pec.cst.easter-eggs.com. Les IPs de 37.9.143.0/28 sont réservées aux VMs.
J'ai testé avec la conf libvirt suivante :