diff --git a/Readme.md b/README.md similarity index 74% rename from Readme.md rename to README.md index c21b5fd..1f78e10 100644 --- a/Readme.md +++ b/README.md @@ -1,7 +1,7 @@ # Documentation de l'infrastructure logicielle et matérielle -L'infrastructure informatique de Libre en Communs est répartie sur différents -sites dans le but d'éviter une centralisation trop importante. Ce travail de +L'infrastructure informatique de Libre en Communs est répartie sur différents +sites dans le but d'éviter une centralisation trop importante. Ce travail de décentralisation étant encore en cours, la présente documentation évolue encore. Cette documentation est publiée sous licence libre (GNU FDL) à l'exception du @@ -10,43 +10,45 @@ l'[**ASUS KGPE-D16**](divers/manuel_Asus_KGPN_D16.pdf). ## Localisation de l'infrastructure -Les sites de l'infrastructure sont les lieux où Libre en Communs dispose de -machines physiques. Nous faisons une distinction entre _sites principaux_ et +Les sites de l'infrastructure sont les lieux où Libre en Communs dispose de +machines physiques. Nous faisons une distinction entre _sites principaux_ et _sites annexes_. Ces sites sont nommés selon leur localisation grossière. ### Sites principaux -Les sites principaux sont : +Les sites principaux sont : - [Le Parc](sites/leparc.md) ; - [Fontainebleau](sites/fontainebleau.md). -Un site principal doit répondre à certains prérequis : -- il dispose d'au moins une baie au format _rack 19 pouces_ ; -- il accueille des machines physiques principales avec du [matériel éligible](procédures/éligibilité_matériel.md) ; +Un site principal doit répondre à certains prérequis : +- il dispose d'au moins une baie au format _rack 19 pouces_ ; +- il accueille des machines physiques principales avec du +[matériel éligible](procédures/éligibilité_matériel.md) ; - il comporte un routeur **nommé d'après le nom du site** (par exemple, à Fontainebleau, le routeur se nomme `fontainebleau`) ; -- il permet un accès à Internet fibré (FTTH) via une ligne dédiée souscrite auprès -d'un opérateur de la [FFDN]() ; -- il dispose d'un compteur électrique pour mesurer la consommation globale des -dispositifs. +- il permet un accès à Internet fibré (FTTH) via une ligne dédiée souscrite +auprès d'un opérateur de la [FFDN](https://ffdn.org/) ; +- il dispose d'un compteur électrique pour mesurer la consommation globale des +dispositifs. ### Sites annexes Les sites annexes sont : - [Gisors](sites/gisors.md). -Un site annexe est un lieu pouvant accueillir des machines physiques simples +Un site annexe est un lieu pouvant accueillir des machines physiques simples (format tour, par exemple). -Un site annexe n'est utilisable que pour des opérations non critiques et annexes -de l'infrastructure (ou secondaires/redondantes). Les conditions prérequises pour -un tel site sont plus souples mais il n'en demeure pas moins que les machines physiques -doivent être [éligibles](procédures/éligibilité_matériel.md) et l'accès internet -éthiquement acceptable. +Un site annexe n'est utilisable que pour des opérations non critiques et +annexes de l'infrastructure (ou secondaires/redondantes). Les conditions +prérequises pour un tel site sont plus souples mais il n'en demeure pas moins +que les machines physiques doivent être +[éligibles](procédures/éligibilité_matériel.md) et l'accès internet éthiquement +acceptable. -## Documentation générique +## Procédures d'administration La gestion de l'infrastructure demande certaines opérations génériques qui ne dépendent pas d'un site particulier. C'est notamment le cas pour les procédures @@ -56,6 +58,7 @@ _NB: seules les personnes membres de la commission infrastructure de Libre en Communs ont accès aux machines physiques sur site ou à distance._ Parmi ces procédures : +- [Gestion des préfixes IPv4](procédures/gestion_IP_préfixe.md) - [Accès aux serveurs physiques](procédures/acces_machine_physique.md) - [Création de serveurs physiques](procédures/création_pm.md) - [Redémarrage des machines physiques](procédures/reboot_physique.md) diff --git a/images/diagramme_fontainebleau.png b/images/diagramme_fontainebleau.png index 1c560f5..ebe813d 100644 Binary files a/images/diagramme_fontainebleau.png and b/images/diagramme_fontainebleau.png differ diff --git a/images/diagramme_fontainebleau.xopp b/images/diagramme_fontainebleau.xopp index 0ecc040..2c3182d 100644 Binary files a/images/diagramme_fontainebleau.xopp and b/images/diagramme_fontainebleau.xopp differ diff --git a/images/diagramme_fontainebleau_drbd.png b/images/diagramme_fontainebleau_drbd.png new file mode 100644 index 0000000..e467c94 Binary files /dev/null and b/images/diagramme_fontainebleau_drbd.png differ diff --git a/images/diagramme_fontainebleau_drbd.xopp b/images/diagramme_fontainebleau_drbd.xopp new file mode 100644 index 0000000..91e1baa Binary files /dev/null and b/images/diagramme_fontainebleau_drbd.xopp differ diff --git a/images/diagramme_leparc.xopp b/images/diagramme_leparc.xopp index df89a53..96cdd17 100644 Binary files a/images/diagramme_leparc.xopp and b/images/diagramme_leparc.xopp differ diff --git a/pm/aelita.md b/pm/aelita.md new file mode 100644 index 0000000..ba0b7b1 --- /dev/null +++ b/pm/aelita.md @@ -0,0 +1,181 @@ +# aelita, machine physique (fontainebleau) + +## Matériel + +Carte mère : 1 × Asus KGPN-D16 Rev 1.03G +CPU : 1 × AMD Opteron 6280SE +RAM : 47 Gio +Alimentation : *(à compléter)* +Casier : 1 × Inter-Tech IPC 4U +Stockage de masse : 2 × KINGSTON SEDC600M3840G 4 To + +## Logiciel + +Micro-programme : GNU Boot 0.1-rc3 +Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo +Noyau : Linux-libre +Virtualisation : QEMU/KVM (`libvirt`) +Gestion du onduleur : NUT/UPS +Audit des paquets mensuel : `vrms` +Sécurités de la maintenance : `etckeeper`, `mollyguard`, `tig`, `lm-sensors`, `fancontrol`, `screen` +Mail Transfer Agent : `postfix` +Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb` + +## Caractéristiques notables + +Domaine : `aelita.libre-en-communs.org` +Adresse ipv4 publique : `80.67.176.40` +Adresse ipv4 locale : `192.168.1.3` +Adresse ipv4 interne DRBD : `192.168.254.3` +Adresse ipv6 publique : `2001:910:1028::2` + +### Configuration réseau + +Les machines physiques sont configurées pour récupérer leur IP locale via +DHCP, le routeur du site embarquant un serveur DHCP. + +Cette machine physique étant un hôte hyperviseur, elle partage sa connexion +ethernet avec les machines virtuelles qu'elle héberge, c'est pourquoi nous +configurons un pont. + +De plus, nous configurons une connexion directe entre `aelita` et `anthea` +pour la réplication `DRBD`. + +#### /etc/network/interfaces +
+ + auto lo br0 + iface lo inet loopback + allow-hotplug ens10 + allow-hotplug ens9 + allow-hotplug ens11f0 + allow-hotplug ens11f1 + + # aelita + iface ens11f1 inet static + address 192.168.254.3 + + post-up /usr/bin/ip link set ens10 mtu 9000 + + # bridge for vm + iface br0 inet dhcp + bridge_ports ens11f0 + + iface br0 inet6 dhcp + bridge_ports ens11f0 + +
+ +## Configuration SSH + +### /etc/ssh/sshd_config +
+ + Port 223 + AddressFamily any + ListenAddress 0.0.0.0 + ListenAddress :: + PubkeyAuthentication yes + PasswordAuthentication no + PermitEmptyPasswords no + ChallengeResponseAuthentication no + UsePAM yes + AllowAgentForwarding yes + AllowTcpForwarding yes + GatewayPorts yes + X11Forwarding no + PrintMotd no + TCPKeepAlive yes + PermitTunnel yes + AcceptEnv LANG LC\_* GIT\_* + Subsystem sftp /usr/lib/openssh/sftp-server + Match User admin666 Address *,!192.168.0.0/16,!::1,!127.0.0.1 + DenyUsers admin666 + +
+ +## Configuration DRBD + +### /etc/drbd.d/drbd1.res +
+ + resource drbd1 { + meta-disk internal; + device /dev/drbd1; + + startup { + become-primary-on both; + } + net { + verify-alg sha256; + allow-two-primaries yes; + after-sb-0pri discard-zero-changes; + after-sb-1pri discard-secondary; + protocol C; + ko-count 0; + timeout 119; + ping-int 120; + connect-int 120; + max-buffers 36k; + sndbuf-size 0; + rcvbuf-size 0; + } + handlers { + pri-lost-after-sb "killall virt-backup"; + } + disk { + on-io-error pass_on; + md-flushes; + c-fill-target 10M; + c-max-rate 700M; + c-plan-ahead 0; + c-min-rate 4M; + resync-rate 500M; + } + + on anthea.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host + address 192.168.254.2:7789; # IP Address to be used to connect to the n> + } + + on aelita.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host + address 192.168.254.3:7789; # IP Address to be used to connect to the n> + } + + } + +
+ +### /etc/ocfs2/cluster.conf +
+ + node: + ip_address = 192.168.254.2 + ip_port = 7777 + number = 0 + name = anthea.libre-en-communs.org + cluster = vmverse + node: + ip_address = 192.168.254.3 + ip_port = 7777 + number = 1 + name = aelita.libre-en-communs.org + cluster = vmverse + cluster: + name = vmverse + node_count = 2 + +
+ +## Configuration MTA + +### /etc/postfix/transport + + a-lec.org : + * discard: + +### /etc/postfix/virtual + + @localhost admin@a-lec.org + @aelita.libre-en-communs.org admin@a-lec.org diff --git a/pm/anthea.md b/pm/anthea.md index dbc20d8..d48ac43 100644 --- a/pm/anthea.md +++ b/pm/anthea.md @@ -4,56 +4,68 @@ Carte mère : 1 × Asus KGPN-D16 Rev 1.03G CPU : 2 × AMD Opteron 6280SE -RAM : 32 Gio +RAM : 47 Gio Alimentation : *(à compléter)* -Casier : *(à compléter)* -Stockage de masse : *(à compléter)* +Casier : 1 × 1 × Inter-Tech IPC 4U +Stockage de masse : 2 × KINGSTON SEDC600M3840G 4 To ## Logiciel -Micro-programme : Coreboot 4.6 + SeaBIOS, sans blob privateur -Système d'exploitation : Debian GNU/Linux-libre 11 (Bullseye) -Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org) +Micro-programme : GNU Boot 0.1-rc3 +Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo +Noyau : Linux-libre Virtualisation : QEMU/KVM (`libvirt`) +Gestion du onduleur : NUT/UPS Audit des paquets mensuel : `vrms` Sécurités de la maintenance : `etckeeper`, `mollyguard`, `tig`, `lm-sensors`, `fancontrol`, `screen` Mail Transfer Agent : `postfix` +Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb` ## Caractéristiques notables Domaine : `anthea.libre-en-communs.org` Adresse ipv4 publique : `80.67.176.40` -Adresse ipv4 locale : `192.168.1.2` +Adresse ipv4 locale : `192.168.1.2` +Adresse ipv4 interne DRBD : `192.168.254.2` Adresse ipv6 publique : `2001:910:1028::2` Emplacement des images de disques des machines virtuelles : `/srv/vmverse` ### Configuration réseau +Les machines physiques sont configurées pour récupérer leur IP locale via +DHCP, le routeur du site embarquant un serveur DHCP. + +Cette machine physique étant un hôte hyperviseur, elle partage sa connexion +ethernet avec les machines virtuelles qu'elle héberge, c'est pourquoi nous +configurons un pont. + +De plus, nous configurons une connexion directe entre `aelita` et `anthea` +pour la réplication `DRBD`. + #### /etc/network/interfaces
auto lo br0 iface lo inet loopback - - # The primary network interface allow-hotplug ens10 allow-hotplug ens9 + allow-hotplug ens11f0 + allow-hotplug ens11f1 + + # anthea + iface ens11f1 inet static + address 192.168.254.2 + + post-up /usr/bin/ip link set ens10 mtu 9000 # bridge for vm - iface br0 inet static - bridge_ports ens10 - address 192.168.1.2 - gateway 192.168.0.1 - broadcast 192.168.255.255 - netmask 255.255.0.0 + iface br0 inet dhcp + bridge_ports ens11f0 + + iface br0 inet6 dhcp + bridge_ports ens11f0 - iface br0 inet6 static - bridge_ports ens10 - address 2001:910:1028:0::2/128 - gateway 2001:910:1028::1 - -
## Configuration SSH @@ -65,33 +77,97 @@ Emplacement des images de disques des machines virtuelles : `/srv/vmverse` AddressFamily any ListenAddress 0.0.0.0 ListenAddress :: - PubkeyAuthentication yes - PasswordAuthentication no PermitEmptyPasswords no - ChallengeResponseAuthentication no - UsePAM yes - AllowAgentForwarding yes AllowTcpForwarding yes GatewayPorts yes X11Forwarding no - PrintMotd no - TCPKeepAlive yes - PermitTunnel yes + AcceptEnv LANG LC\_* GIT\_* + Subsystem sftp /usr/lib/openssh/sftp-server + Match User admin666 Address *,!192.168.0.0/16,!::1,!127.0.0.1 + DenyUsers admin666 - AcceptEnv LANG LC_* GIT_* + - Subsystem sftp /usr/lib/openssh/sftp-server +## Configuration DRBD - Match User admin666 Address *,!192.168.0.0/16,!::1 - DenyUsers admin666 +### /etc/drbd.d/drbd1.res +
+ + resource drbd1 { + meta-disk internal; + device /dev/drbd1; + + startup { + become-primary-on both; + } + net { + verify-alg sha256; + allow-two-primaries yes; + after-sb-0pri discard-zero-changes; + after-sb-1pri discard-secondary; + protocol C; + ko-count 0; + timeout 119; + ping-int 120; + connect-int 120; + max-buffers 36k; + sndbuf-size 0; + rcvbuf-size 0; + } + handlers { + pri-lost-after-sb "killall virt-backup"; + } + disk { + on-io-error pass_on; + md-flushes; + c-fill-target 10M; + c-max-rate 700M; + c-plan-ahead 0; + c-min-rate 4M; + resync-rate 500M; + } + + on anthea.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host + address 192.168.254.2:7789; # IP Address to be used to connect to the n> + } + + on aelita.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host + address 192.168.254.3:7789; # IP Address to be used to connect to the n> + } + + } + + +
+ +### /etc/ocfs2/cluster.conf +
+ + node: + ip_address = 192.168.254.2 + ip_port = 7777 + number = 0 + name = anthea.libre-en-communs.org + cluster = vmverse + node: + ip_address = 192.168.254.3 + ip_port = 7777 + number = 1 + name = aelita.libre-en-communs.org + cluster = vmverse + cluster: + name = vmverse + node_count = 2
diff --git a/pm/aunt.md b/pm/aunt.md index 71f9068..7cc4aad 100644 --- a/pm/aunt.md +++ b/pm/aunt.md @@ -7,11 +7,11 @@ CPU : 2 × AMD Opteron 6282SE RAM : 7 × Crucial RDIMM 16Go CT2K16G3ERSLD4160B Alimentation : HX750 Casier : 1 × Inter-Tech IPC 4U-4129-N SSI-EEB (Rack) -Stockage de masse : 2 × KINGSTON SEDC500M1920G +Stockage de masse : 2 × KINGSTON SEDC600M3840G 4 To ## Logiciel -Micro-programme : GNU Boot 0.1-rc1 +Micro-programme : GNU Boot 0.1-rc3 Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo Noyau : Linux-libre Virtualisation : QEMU/KVM (`libvirt`) @@ -26,43 +26,44 @@ Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb` Domaine : `aunt.libre-en-communs.org` Adresse ipv4 publique : `80.67.176.33` Adresse ipv4 locale : `192.168.1.3` -Adresse ipv4 interne DRBD : `192.168.254.3` +Adresse ipv4 directe DRBD : `192.168.254.3` Adresse ipv6 publique : `2001:910:1021::3` ### Configuration réseau +Les machines physiques sont configurées pour récupérer leur IP locale via +DHCP, le routeur du site embarquant un serveur DHCP. + +Cette machine physique étant un hôte hyperviseur, elle partage sa connexion +ethernet avec les machines virtuelles qu'elle héberge, c'est pourquoi nous +configurons un pont. + +De plus, nous configurons une connexion directe entre `mother` et `aunt` +pour la réplication `DRBD`. + #### /etc/network/interfaces
# The loopback network interface - auto lo + auto lo br0 iface lo inet loopback + allow-hostplug ens9 + allow-hostplug ens10 + allow-hostplug ens13f0 + allow-hostplug ens13f1 - # The primary network interface - allow-hotplug ens9 - allow-hotplug ens10 - allow-hotplug ens13f0 - allow-hotplug ens13f1 - - # mother! + # aunt iface ens13f1 inet static address 192.168.254.3 post-up /usr/bin/ip link set ens13f1 mtu 9000 # bridge for vm - auto br0 - iface br0 inet static - bridge_ports ens13f0 - address 192.168.1.3 - gateway 192.168.0.1 - broadcast 192.168.255.255 - netmask 255.255.0.0 - - iface br0 inet6 static + iface br0 inet dhcp + bridge_ports ens13f0 + + iface br0 inet6 dhcp bridge_ports ens13f0 - address 2001:910:1021::3/128 - gateway 2001:910:1021::
@@ -75,33 +76,22 @@ Adresse ipv6 publique : `2001:910:1021::3` AddressFamily any ListenAddress 0.0.0.0 ListenAddress :: - PubkeyAuthentication yes - PasswordAuthentication no PermitEmptyPasswords no - ChallengeResponseAuthentication no - UsePAM yes - AllowAgentForwarding yes AllowTcpForwarding yes GatewayPorts yes X11Forwarding no - PrintMotd no - TCPKeepAlive yes - PermitTunnel yes - - AcceptEnv LANG LC_* GIT_* - - Subsystem sftp /usr/lib/openssh/sftp-server - - Match User admin666 Address *,!127.0.0.1,!::1 - DenyUsers admin666 + AcceptEnv LANG LC\_* GIT\_* + Subsystem sftp /usr/lib/openssh/sftp-server + Match User admin666 Address *,!192.168.0.0/16,!::1,!127.0.0.1,!127.0.1.1 + DenyUsers admin666 @@ -110,53 +100,51 @@ Adresse ipv6 publique : `2001:910:1021::3` ### /etc/drbd.d/drbd1.res
- resource drbd1 { - meta-disk internal; - device /dev/drbd1; +resource drbd1 { + meta-disk internal; + device /dev/drbd1; - startup { - become-primary-on both; - } - net { - verify-alg sha256; - allow-two-primaries yes; - #fencing resource-and-stonith; - after-sb-0pri discard-zero-changes; - after-sb-1pri discard-secondary; - protocol C; - ko-count 0; - timeout 119; - ping-int 120; - connect-int 120; - #max-epoch-size 20000; - max-buffers 36k; - sndbuf-size 0; - rcvbuf-size 0; - } - handlers { - pri-lost-after-sb "killall virt-backup && umount /opt/sharedfs && drbdadm secondary drbd1"; - } - disk { - on-io-error pass_on; - md-flushes; - c-fill-target 10M; - c-max-rate 700M; - c-plan-ahead 0; - c-min-rate 4M; - resync-rate 500M; - } + startup { + become-primary-on both; + } + net { + verify-alg sha256; + allow-two-primaries yes; + after-sb-0pri discard-zero-changes; + after-sb-1pri discard-secondary; + protocol C; + ko-count 0; + timeout 119; + ping-int 120; + connect-int 120; + max-buffers 36k; + sndbuf-size 0; + rcvbuf-size 0; + } + handlers { + pri-lost-after-sb "killall virt-backup"; + } + disk { + on-io-error pass_on; + md-flushes; + c-fill-target 10M; + c-max-rate 700M; + c-plan-ahead 0; + c-min-rate 4M; + resync-rate 500M; + } - on mother { # hostname must match `uname -n` output - disk /dev/md1; # Logical Volume on the provided host - address 192.168.254.2:7789; # IP Address to be used to connect to the node with port - } + on mother.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host + address 192.168.254.2:7789; # IP Address to be used to connect to the node with port + } - on aunt { # hostname must match `uname -n` output - disk /dev/md1; # Logical Volume on the provided host - address 192.168.254.3:7789; # IP Address to be used to connect to the node with port - } + on aunt.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host + address 192.168.254.3:7789; # IP Address to be used to connect to the node with port + } - } +}
@@ -164,22 +152,22 @@ Adresse ipv6 publique : `2001:910:1021::3`
cluster: - name = sharedfs + name = vmverse heartbeat_mode = local node_count = 2 node: - cluster = sharedfs + cluster = vmverse number = 0 ip_port = 7777 - ip_address = 192.169.254.3 + ip_address = 192.168.254.3 name = aunt node: - cluster = sharedfs + cluster = vmverse number = 1 ip_port = 7777 - ip_address = 192.169.254.2 + ip_address = 192.168.254.2 name = mother
diff --git a/pm/britt.md b/pm/britt.md deleted file mode 100644 index 8ad7bd6..0000000 --- a/pm/britt.md +++ /dev/null @@ -1,107 +0,0 @@ -# britt, machine physique (gisors) - -## Matériel - -Carte mère : 1 × Asus KGPN-D16 Rev 1.03G -CPU : 1 × AMD Opteron 6280SE -RAM : 16 Gio -Alimentation : *(à compléter)* -Casier : Antec P101 -Stockage de masse : disque dur 1To WDC WD10EZEX-00W - -## Logiciel - -Micro-programme : Coreboot 4.6 + SeaBIOS, sans blob privateur -Système d'exploitation : Debian GNU/Linux-libre 11 (Bullseye) -Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org) -Virtualisation : QEMU/KVM (`libvirt`) -Audit des paquets mensuel : `vrms` -Sécurités de la maintenance : `etckeeper`, `mollyguard`, `tig`, `lm-sensors`, `fancontrol`, `screen` -Mail Transfer Agent : `postfix` - -## Caractéristiques notables - -Domaine : `britt.libre-en-communs.org` -Adresse ipv4 publique : `80.67.179.113` -Adresse ipv4 locale : `192.168.2.244` -Adresse ipv6 publique : `2001:910:1371::244` - -### Configuration réseau - -#### /etc/network/interfaces -
- - # The loopback network interface - auto lo - iface lo inet loopback - - # The primary network interface - allow-hotplug ens10 - - # bridge for vm - auto br0 - iface br0 inet dhcp - bridge_ports ens10 - bridge_stp off # disable Spanning Tree Protocol - - iface br0 inet6 static - bridge_ports ens10 - address 2001:910:1371:0::244/128 - gateway 2001:910:1371::1 - bridge_stp off # disable Spanning Tree Protocol - bridge_waitport 0 # no delay before a port becomes available - bridge_fd 0 # no forwarding delay - -
- -## Configuration SSH - -### /etc/ssh/sshd_config -
- - Port 222 - AddressFamily any - ListenAddress 0.0.0.0 - ListenAddress :: - - PubkeyAuthentication yes - - PasswordAuthentication no - PermitEmptyPasswords no - - ChallengeResponseAuthentication no - - UsePAM yes - - AllowAgentForwarding yes - AllowTcpForwarding yes - GatewayPorts yes - X11Forwarding no - - PrintMotd no - - TCPKeepAlive yes - - PermitTunnel yes - - AcceptEnv LANG LC_* GIT_* - - Subsystem sftp /usr/lib/openssh/sftp-server - - Match User admin666 Address *,!127.0.0.1,!::1 - DenyUsers admin666 - - -
- -## Configuration MTA - -### /etc/postfix/transport - - a-lec.org : - * discard: - -### /etc/postfix/virtual - - @localhost admin@a-lec.org - @britt.libre-en-communs.org admin@a-lec.org diff --git a/pm/gardefou.md b/pm/gardefou.md index 560afc8..49135c9 100644 --- a/pm/gardefou.md +++ b/pm/gardefou.md @@ -15,7 +15,7 @@ Alimentation : boitier 65W ## Logiciel -Micro-programme : Libreboot 20220710 seabios libgfxinit (redémarrage non automatique) +Micro-programme : GNU Boot 0.1-rc3 Système d'exploitation : Debian GNU/Linux-libre 11 (Bullseye) Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org) Audit des paquets mensuel : `vrms` @@ -24,7 +24,7 @@ Mail Transfer Agent : `postfix` ## Caractéristiques notables -Domaine : `sauvkipeu.libre-en-communs.org` +Domaine : `gardefou.libre-en-communs.org` Adresse ipv6 publique : `2001:910:1021::5` ### Configuration réseau diff --git a/pm/mother.md b/pm/mother.md index a5a3ffb..9cce9c1 100644 --- a/pm/mother.md +++ b/pm/mother.md @@ -11,7 +11,7 @@ Stockage de masse : 2 × KINGSTON SEDC600M3840G 4 To ## Logiciel -Micro-programme : GNU Boot 0.1-rc1 +Micro-programme : GNU Boot 0.1-rc3 Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo Noyau : Linux-libre Virtualisation : QEMU/KVM (`libvirt`) @@ -26,41 +26,45 @@ Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb` Domaine : `mother.libre-en-communs.org` Adresse ipv4 publique : `80.67.176.33` Adresse ipv4 locale : `192.168.1.2` -Adresse ipv4 interne DRBD : `192.168.254.2` +Adresse ipv4 directe DRBD : `192.168.254.2` Adresse ipv6 publique : `2001:910:1021::2` ### Configuration réseau +Les machines physiques sont configurées pour récupérer leur IP locale via +DHCP, le routeur du site embarquant un serveur DHCP. + +Cette machine physique étant un hôte hyperviseur, elle partage sa connexion +ethernet avec les machines virtuelles qu'elle héberge, c'est pourquoi nous +configurons un pont. + +De plus, nous configurons une connexion directe entre `mother` et `aunt` +pour la réplication `DRBD`. + #### /etc/network/interfaces
+ # The loopback network interface auto lo br0 iface lo inet loopback - - # The primary network interface - allow-hotplug ens10 - allow-hotplug ens9 - allow-hotplug ens13f0 - allow-hotplug ens13f1 + allow-hostplug ens9 + allow-hostplug ens10 + allow-hostplug ens13f0 + allow-hostplug ens13f1 # aunt iface ens13f1 inet static - address 192.168.254.2 + address 192.168.254.2 post-up /usr/bin/ip link set ens13f1 mtu 9000 # bridge for vm - iface br0 inet static - bridge_ports ens13f0 - address 192.168.1.2 - gateway 192.168.0.1 - broadcast 192.168.255.255 - netmask 255.255.0.0 + iface br0 inet dhcp + bridge_ports ens13f0 + + iface br0 inet6 dhcp + bridge_ports ens13f0 - iface br0 inet6 static - bridge_ports ens13f0 - address 2001:910:1021:0::2/128 - gateway 2001:910:1021::1
@@ -73,33 +77,23 @@ Adresse ipv6 publique : `2001:910:1021::2` AddressFamily any ListenAddress 0.0.0.0 ListenAddress :: - PubkeyAuthentication yes - PasswordAuthentication no PermitEmptyPasswords no - ChallengeResponseAuthentication no - UsePAM yes - AllowAgentForwarding yes AllowTcpForwarding yes GatewayPorts yes X11Forwarding no - PrintMotd no - TCPKeepAlive yes - PermitTunnel yes + AcceptEnv LANG LC\_* GIT\_* + Subsystem sftp /usr/lib/openssh/sftp-server + Match User admin666 Address *,!192.168.0.0/16,!::1,!127.0.0.1,!127.0.1.1 + DenyUsers admin666 - AcceptEnv LANG LC_* GIT_* - - Subsystem sftp /usr/lib/openssh/sftp-server - - Match User admin666 Address *,!127.0.0.1,!::1 - DenyUsers admin666 @@ -142,13 +136,13 @@ Adresse ipv6 publique : `2001:910:1021::2` resync-rate 500M; } - on mother { # hostname must match `uname -n` output - disk /dev/md1; # Logical Volume on the provided host + on mother.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host address 192.168.254.2:7789; # IP Address to be used to connect to the node with port } - on aunt { # hostname must match `uname -n` output - disk /dev/md1; # Logical Volume on the provided host + on aunt.libre-en-communs.org { # hostname must match `uname -n` output + disk /dev/md/1; # Logical Volume on the provided host address 192.168.254.3:7789; # IP Address to be used to connect to the node with port } diff --git a/pm/sauvkipeu.md b/pm/sauvkipeu.md index 2bff9cc..a2a8b58 100644 --- a/pm/sauvkipeu.md +++ b/pm/sauvkipeu.md @@ -15,7 +15,7 @@ Alimentation : boitier 65W ## Logiciel -Micro-programme : Libreboot 20220710 seabios libgfxinit (redémarrage non automatique) +Micro-programme : GNU Boot 0.1-rc3 Système d'exploitation : Debian GNU/Linux-libre 11 (Bullseye) Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org) Audit des paquets mensuel : `vrms` diff --git a/procédures/acces_machine_physique.md b/procédures/acces_machine_physique.md index f3b740e..b4e8475 100644 --- a/procédures/acces_machine_physique.md +++ b/procédures/acces_machine_physique.md @@ -1,34 +1,43 @@ # Accès aux machines physiques de l'infrastructure -## Configuration SSH serveur +Seules les personnes membre de la Commission infrastructure peuvent être +autorisées à accéder aux machines physiques. -Pour un administrateur d'infrastructure, l'accès aux machines physiques de -l'infrastructure se fait sur le compte sudoer `admin666` via le compte `cominfra`, -authentifié par clé SSH. +## Via SSH + +### Configuration SSH serveur + +Pour une personne administrant l'infrastructure, l'accès aux machines physiques +de se fait sur le compte sudoer `admin666` via le compte `cominfra`, authentifié +par clé SSH. -Pour qu'un nouvel administrateur puisse accéder à la machine, il faut ajouter -la clé publique (ssh) du nouvel admin dans `/home/cominfra/.ssh/authorized_keys` -et `/home/admin666/.ssh/authorized_keys`. +Pour qu'une nouvelle personne puisse accéder à la machine, il faut ajouter +sa clé publique (ssh) dans les fichiers de configurations de la machine physique : +- `/home/cominfra/.ssh/authorized_keys` +- `/home/admin666/.ssh/authorized_keys` +### Configuration SSH client -## Configuration SSH client +Une personne souhaitant se connecter à une machine physique doit configurer son +client SSH, généralement dans le fichier `~/.ssh/config`. -Éditer le fichier `~/.ssh/config` : +La configuration met en jeu un proxy, sécurité supplémentaire pour l'accès au +compte d'administration : ``` -host machine_physique-proxy.libre-en-communs.org - Hostname machine_physique.libre-en-communs.org +host -proxy.libre-en-communs.org + Hostname .libre-en-communs.org User cominfra - Port 222 + Port SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL -host machine_physique.libre-en-communs.org +host .libre-en-communs.org User admin666 - Port 222 - ProxyJump machine_physique-proxy.libre-en-communs.org + Port + ProxyJump -proxy.libre-en-communs.org SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL ``` -En 2023, voici ce que cela donne pour toutes les machines physiques actuelles : +En 2024, voici ce que cela donne pour toutes les machines physiques actuelles : ``` host mother-proxy.libre-en-communs.org Hostname mother.libre-en-communs.org @@ -66,16 +75,16 @@ host anthea.libre-en-communs.org ProxyJump anthea-proxy.libre-en-communs.org SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL -host britt-proxy.libre-en-communs.org - Hostname britt.libre-en-communs.org +host aelita-proxy.libre-en-communs.org + Hostname aelita.libre-en-communs.org User cominfra - Port 222 + Port 223 SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL -host britt.libre-en-communs.org +host aelita.libre-en-communs.org User admin666 - Port 222 - ProxyJump britt-proxy.libre-en-communs.org + Port 223 + ProxyJump aelita-proxy.libre-en-communs.org SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL host gardefou-proxy.libre-en-communs.org @@ -105,22 +114,50 @@ host sauvkipeu.libre-en-communs.org ### Procédure de connexion avec config dans ~/.ssh/config -Pour accéder au serveur `machine_physique`, le nouvel admin n'a plus qu'à utiliser : +Pour accéder au serveur ``, il faut exécuter : ``` -ssh machine_physique.libre-en-communs.org +ssh .libre-en-communs.org ``` ### Procédure de connexion sans config -Pour accéder au serveur `machine_physique`, le nouvel admin peut utiliser : +Pour accéder au serveur ``, on peut aussi exécuter : ``` -ssh -i 'CLE_PRIV' -J cominfra@machine_physique.libre-en-communs.org:222 admin666@localhost -p 222 +ssh -i 'CLE_PRIV' -J cominfra@.libre-en-communs.org: admin666@localhost -p 222 ``` ### Accès aux machines virtuelles -Si besoin, l'administrateur d'infrastructure peut accéder aux machines virtuelles -qui s'exécutent sur une machine physique, et ce depuis le compte `admin666` -de n'importe quel serveur. Il suffira d'utiliser la commande `ssh `. +Si besoin, une personne administration l'infrastructure peut accéder aux +machines virtuelles qui s'exécutent sur une machine physique, et ce depuis le +compte `admin666` de n'importe quelle machine physique. Il suffira d'utiliser +la commande `ssh `. -Par exemple, pour accéder à la machine `dns` : `ssh dns` +Par exemple, pour accéder à la machine `dns.libre-en-communs.org` : +``` +ssh dns.libre-en-communs.org +``` + +## Via console série (RS232) + +Les machines physiques d'un même site sont interconnectées par des liens RS232 +permettant l'utilisation d'une console série. + +### État des interconnexions RS232 + +#### Site `leparc` + +- `mother` et `aunt` sont interconnectées (bidirectionnel) + +#### Site `fontainebleau` + +- `gardefou` peut accéder à `anthea` (unidirectionnel) +- `anthea` et `aelita` ne sont pas interconnectées + +### Procédure de connexion + +Pour se connecter à la machine disponible via la console série, +utiliser (en root) : +``` +minicom -D /dev/ttyUSB0 +``` diff --git a/procédures/acces_virt-manager.md b/procédures/acces_virt-manager.md index 9535554..ddfef65 100644 --- a/procédures/acces_virt-manager.md +++ b/procédures/acces_virt-manager.md @@ -1,15 +1,15 @@ # Accès virt-manager -Les adminsys de Cominfra peuvent configurer un accès pour `virt-manager`, l'application graphique qui permet de gérer des vms à la souris depuis sa machine. +Les adminsys de Cominfra peuvent configurer un accès pour `virt-manager`, +l'application graphique qui permet de gérer des machines virtuelles à la souris +depuis sa machine. -Prérequis, avoir installé `virt-manager` : -``` -apt install virt-manager -``` +(Prérequis : avoir installé `virt-manager` sur sa machine) -## Pour anthea +## Configuration du client -Côté serveur, configurer l'autorisation d'accès en ajoutant une clé SSH public dans le fichier `virt-user@anthea.libre-en-communs.org:~/.ssh/authorized_keys`. +Côté serveur, configurer l'autorisation d'accès en ajoutant une clé SSH public +dans le fichier `virt-user@machine-physique.libre-en-communs.org:~/.ssh/authorized_keys`. Côté client, configurer le client `virt-manager` : - Menu > Fichier > Ajouter une connexion… @@ -17,45 +17,6 @@ Côté client, configurer le client `virt-manager` : - Hyperviseur : QEMU/KVM, - Se connecter à l'hôte distant via SSH : cocher, - Nom d'utilisateur : virt-user, - - Nom de l'hôté : anthea.libre-en-communs.org:222 -- cliquer sur « Connecter ». - -## Pour aunt - -Côté serveur, configurer l'autorisation d'accès en ajoutant une clé SSH public dans le fichier `virt-user@aunt.libre-en-communs.org:~/.ssh/authorized_keys`. - -Côté client, configurer le client `virt-manager` : -- Menu > Fichier > Ajouter une connexion… -- remplir le formulaire : - - Hyperviseur : QEMU/KVM, - - Se connecter à l'hôte distant via SSH : cocher, - - Nom d'utilisateur : virt-user, - - Nom de l'hôté : aunt.libre-en-communs.org:223 -- cliquer sur « Connecter ». - -## Pour britt - -Côté serveur, configurer l'autorisation d'accès en ajoutant une clé SSH public dans le fichier `virt-user@britt.libre-en-communs.org:~/.ssh/authorized_keys`. - -Côté client, configurer le client `virt-manager` : -- Menu > Fichier > Ajouter une connexion… -- remplir le formulaire : - - Hyperviseur : QEMU/KVM, - - Se connecter à l'hôte distant via SSH : cocher, - - Nom d'utilisateur : virt-user, - - Nom de l'hôté : britt.libre-en-communs.org:222 -- cliquer sur « Connecter ». - -## Pour mother - -Côté serveur, configurer l'autorisation d'accès en ajoutant une clé SSH public dans le fichier `virt-user@mother.libre-en-communs.org:~/.ssh/authorized_keys`. - -Côté client, configurer le client `virt-manager` : -- Menu > Fichier > Ajouter une connexion… -- remplir le formulaire : - - Hyperviseur : QEMU/KVM, - - Se connecter à l'hôte distant via SSH : cocher, - - Nom d'utilisateur : virt-user, - - Nom de l'hôté : mother.libre-en-communs.org:222 + - Nom de l'hôté : machine-physique.libre-en-communs.org:port - cliquer sur « Connecter ». diff --git a/procédures/acces_vm.md b/procédures/acces_vm.md index 1ea8dd7..ce365fe 100644 --- a/procédures/acces_vm.md +++ b/procédures/acces_vm.md @@ -1,13 +1,19 @@ -## Accès aux machines virtuelles de l'infrastructure +# Accès aux machines virtuelles de l'infrastructure + +## Via SSH ### Configuration SSH serveur -En règle générale, l'accès aux machines virtuelles ne se fait pas directement. Il faut passer par une machine physique. -Pour qu'un nouvel administrateur puisse accéder à des machines, il faut : +En règle générale, l'accès aux machines virtuelles ne se fait pas directement. +Il faut passer par une machine physique. -- Sur la machine physique hypervisant la machine, ajouter la clé publique (ssh) du nouvel admin dans `/home/cominfra/.ssh/authorized_keys` +Pour qu'une nouvelle personne puisse accéder à des machines, il faut : -- Sur chaque machine virtuelle concernée, ajouter la clé publique (ssh) du nouvel admin dans `/home/admin666/.ssh/authorized_keys` +- Sur la machine physique hypervisant la machine, ajouter la clé publique (ssh) +de la nouvelle personne dans `/home/cominfra/.ssh/authorized_keys` + +- Sur chaque machine virtuelle concernée, ajouter la clé publique (ssh) +de la nouvelle personne dans `/home/admin666/.ssh/authorized_keys` Notes : - en IPV6, bien qu'en règle générale la connexion directe soit désactivée, elle peut être autorisée au cas par cas. @@ -16,40 +22,54 @@ Notes : ### Configuration SSH client (dans `~/.ssh/config`) +Une personne souhaitant se connecter à une machine virtuelle doit configurer son +client SSH, généralement dans le fichier `~/.ssh/config`. + +La configuration met en jeu un proxy, obligatoire pour IPv4 (en raison du partage +d'adresse IP et du port unique) et servant de sécurité supplémentaire avec IPv6. +Le proxy peut être n'importe quelle machine physique de l'infrastructure, le mieux +étant d'utiliser la machine qui hypervise la machine virtuelle visée, mais ce n'est +pas nécessaire. Une machine d'un site différent peut aussi être utilisée (mais cela +ajoute de la latence). + +La configuration suivante permet l'accès à toute machine virtuelle des domaines +`a-lec.org` et `chalec.org` : + ``` -host machine_physique-proxy.libre-en-communs.org - Hostname machine_physique.libre-en-communs.org +host -proxy.libre-en-communs.org + Hostname .libre-en-communs.org User cominfra - Port 222 + Port SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL host *.a-lec.org User admin666 Port 22 - ProxyJump machine_physique-proxy.libre-en-communs.org + ProxyJump -proxy.libre-en-communs.org SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL host *.chalec.org User admin666 Port 22 - ProxyJump machine_physique-proxy.libre-en-communs.org + ProxyJump -proxy.libre-en-communs.org SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL ``` -Pour fixer les variables Git directement dans la conf, ajouter un `SetEnv` avant `SendEnv` : -``` -SetEnv GIT_AUTHOR_NAME="Moi" GIT_AUTHOR_EMAIL="moncourriel" -``` +Pour fixer les variables Git directement dans la conf, il est possibe d'ajouter +un `SetEnv` avant `SendEnv` : +``` +SetEnv GIT_AUTHOR_NAME="" GIT_AUTHOR_EMAIL="" +``` ### Procédure de connexion avec config dans ~/.ssh/config -Le nouvel admin n'a plus qu'à utiliser `ssh NOM_DE_VM.a-lec.org` pour accéder à la machine virtuelle +Il suffit d'utiliser `ssh ` pour accéder à la machine virtuelle. ### Procédure de connexion sans config -Le nouvel admin peut utiliser au choix : +Il est également possible d'utiliser : -- `ssh -i 'CLE_PRIV' -J cominfra@machine_physique.libre-en-communs.org:222 admin666@NOM_DE_VM.a-lec.org -p 22` - -- `ssh -i 'CLE_PRIV' -J cominfra@machine_physique.libre-en-communs.org:223 admin666@NOM_DE_VM.a-lec.org -p 22` +``` +ssh -i 'CLE_PRIV' -J cominfra@machine_physique.libre-en-communs.org: admin666@ -p 22 +``` diff --git a/procédures/configurer_http_ipv4.md b/procédures/configuration_proxy_http_ipv4.md similarity index 93% rename from procédures/configurer_http_ipv4.md rename to procédures/configuration_proxy_http_ipv4.md index d39f743..f2fc330 100644 --- a/procédures/configurer_http_ipv4.md +++ b/procédures/configuration_proxy_http_ipv4.md @@ -1,8 +1,10 @@ -# Configurer HTTP IPv4 +# Configuration du proxy HTTP (IPv4) Afin d'économiser des adresses IPv4, le flux HTTP IPv4 est mutualisé sur une seule IP. En conséquence, une étape de proxy est nécessaire. +La configuration d + Enrichir le fichier `leparc.libre-en-communs.org:/etc/nginx/reverse_proxy.conf` : ``` server { diff --git a/procédures/création_vm.md b/procédures/création_vm.md index bee37d1..e1f8808 100644 --- a/procédures/création_vm.md +++ b/procédures/création_vm.md @@ -7,16 +7,16 @@ sudo apt install virtinst Cloner la vm `generic.a-lec.org` ou `generic.chalec.org` : ``` -sudo virt-clone --original generic.a-lec.org --name foo.a-lec.org --file /opt/sharedfs/images_noyau/foo.a-lec.org.raw +cp --reflink /srv/vmverse/installation/generic.a-lec.org /srv/vmverse//.raw ``` Vérifier la bonne création : ``` -sudo virsh list --inactive # Liste les vm inactives. -sudo virsh dominfo foo.a-lec.org # Affiche les informations générales de la nouvelle vm. +sudo virsh list --inactive # Liste les vm inactives. +sudo virsh dominfo # Affiche les informations générales de la nouvelle vm. ``` -Réserver une adresse IPv4 privée : +Réserver une adresse IPv4 locale : - se connecter en web sur le routeur du site concerné ; - aller dans la section `Network` > `DHCP` > onglet `Static Leases` > bouton `Add` : - `Hostname` : nom complet de la VM, @@ -25,20 +25,21 @@ Réserver une adresse IPv4 privée : - un 192.168.0.x pour infra générale (par exemple de la supervision ou du DNS), - un 192.168.1.x pour infra, - un 192.168.2.x pour chalec, -- cliquer sur `Save & Apply`. + - `IPv6` : remplir le suffixe avec une valeur cohérente avec l'adresse IPv4 locale (si possible) ; +- cliquer sur `Save & Apply` ; - aller dans la section `Network` > 'Hostnames` > bouton 'Add' : - `Hostname` : nom complet de la VM, - - `IP address` : remplir le champ `custom` tout en bas de la liste déroulante, avec l'ip locale, + - `IP address` : remplir le champ `custom` tout en bas de la liste déroulante, avec l'IPv4 locale, - cliquer sur `Save & Apply`. Démarrer la vm : ``` -sudo virsh start foo.a-lec.org +sudo virsh start ``` Ouvrir une console sur la vm : ``` -sudo virsh console foo.a-lec.org +sudo virsh console ``` Se connecter avec `admin666` sans mot de passe. @@ -53,14 +54,6 @@ Installer les paquets de base (au cas où) : sudo apt install etckeeper molly-guard tig lm-sensors fancontrol screen emacs-nox vrms needrestart iotop htop curl ncdu iptraf tig unzip ``` -Configurer les adresses IP dans la vm dans `/etc/network/interfaces` : -``` -- address 192.168.1.4/32 -+ address 192.168../32 -- address 2001:910:1021::4/128 -+ address 2001:910:1021::/128 -``` - Configurer le `hostname` : ``` sudo hostnamectl set-hostname foo.a-lec.org diff --git a/procédures/gestion_IP_préfixe.md b/procédures/gestion_IP_préfixe.md new file mode 100644 index 0000000..b9a48d8 --- /dev/null +++ b/procédures/gestion_IP_préfixe.md @@ -0,0 +1,235 @@ +# Gestion des préfixes IPv4 + +## Situation + +Libre en Communs dispose de deux préfixes IPv4, fournis par Gitoyen : + +- `80.67.160.144/29` attribué à la ligne de `Fontainebleau` +- `80.67.160.152/29` attribué à la ligne de `Le Parc` + +## Configuration d'un préfixe + +La configuration d'un préfixe se fait à plusieurs niveaux : +- routeur du site concerné +- zone rDNS déléguée à Libre en Communs + +### Configuration de la zone rDNS + +Les zones rDNS sont à mettre en place sur `dns.libre-en-communs.org`. + +En l'occurence, il s'agit des zones : +- `144-29.160.67.80.in-addr.arpa` (fichier `80.67.160.144-29::.zone`) +- `152-29.160.67.80.in-addr.arpa` (fichier `80.67.160.152-29::.zone`) + +Ces fichiers doivent bien-sûr contenir la déclaration SOA/NS, typiquement : + + $TTL 60m + @ IN SOA dns.libre-en-communs.org. contact.a-lec.org. ( + 2406171328 ; serial + 86400 ; refresh (1 day) + 3600 ; retry (1 hour) + 3600000 ; expire (5 weeks 6 days 16 hours) + 300 ; minimum (5 minutes) + ) + @ IN NS dns.libre-en-communs.org. + @ IN NS ns0.libre-en-communs.org. + @ IN NS ns1.libre-en-communs.org. + +Ensuite, chaque enregistrement inverse est représenté par une ligne de la forme : + + suffixe IN PTR domaine. + +Par exemple, pour l'adresse 80.67.160.154 : + + 154 IN PTR mail.a-lec.org. + +### Configuration du préfixe sur le routeur + +#### Méthode graphique + +Pour être en mesure d'utiliser le préfixe sur le site affecté, il faut créer une +interface virtuelle de type WAN dédiée. Sur nos routeurs cela se fait comme suit : + +1. Se rendre sur la page de configuration des interfaces du routeur (_Network > Interfaces_) +2. Créer une nouvelle interface (_Add new interface_) +3. Utiliser un nom cohérent (par exemple _wan2_) +4. Choisir le protocole _Static address_ +5. Utiliser le périphérique correspondant à l'interface _wan_ (chez nous, _eth2_) +6. Cliquer sur _Create interface_ +7. Dans le champ _IPv4 address_, remplir avec le préfixe en notation CIDR et cliquer sur les "..." +8. Dans l'onglet _Advanced Settings_, désactiver l'option _Delegate IPv6 prefixes_ +9. Dans l'onglet _Firewall Settings_, assigner à la zone _wan_ +10. Sauvegarder et appliquer les changements + +On crée ensuite une interface virtuelle de type LAN dédiée, afin de pouvoir bénéficier +du serveur DHCP plus tard. Sur nos routeurs, cela se fait comme suit : + +11. Se rendre sur la page de configuration des interfaces du routeur (_Network > Interfaces_) +12. Créer une nouvelle interface (_Add new interface_) +13. Utiliser un nom cohérent (par exemple _lan2_) +14. Choisir le protocole _Static address_ +15. Utiliser le périphérique correspondant à l'interface _lan_ (chez nous, _br-lan_) +16. Cliquer sur _Create interface_ +17. Dans le champ _IPv4 address_, remplir avec le préfixe en notation CIDR et cliquer sur les "..." +18. Dans l'onglet _Advanced Settings_, désactiver l'option _Delegate IPv6 prefixes_ +19. Dans l'onglet _Firewall Settings_, assigner à la zone _lan_ +20. Dans l'onglet _DHCP Server_, cliquer sur _Create DHCP Server_ +21. Dans l'onglet _General Setup_, indiquer le premier suffixe dans le champ _Start_ et le nombre +total d'adresses dans le champ _Limit_ +22. Dans l'onglet _Advanced Settings_, désactiver l'option _Dynamic DHCP_ +23. Sauvegarder et appliquer les changements. + +#### Méthode en ligne de commande + +Pour être en mesure d'utiliser le préfixe sur le site affecté, il faut créer une +interface virtuelle de type WAN dédiée. Sur nos routeurs cela se fait comme suit : + +1. Se connecter en SSH au routeur +2. Ouvrir le fichier `/etc/config/network` et ajouter le bloc de configuration suivant : + + config interface '' # par exemple _wan2_ + option proto 'static' + option device '' # par exemple, _eth2_ + list ipaddr '' + option delegate '0' + +3. Sauvegarder et valider avec : + + uci commit /etc/config/network + /etc/init.d/network reload + +On crée ensuite une interface virtuelle de type LAN dédiée, afin de pouvoir bénéficier +du serveur DHCP plus tard. Sur nos routeurs, cela se fait comme suit : + +4. Ouvrir le fichier `/etc/config/network` et ajouter le bloc de configuration suivant : + + config interface '' # par exemple _lan2_ + option proto 'static' + option device '' # par exemple, _br-lan_ + list ipaddr '' + option delegate '0' + +5. Ouvrir le fichier `/etc/config/dhcp` et ajouter le bloc de configuration suivant : + + config dhcp '' # par exemple _lan2_ + option interface '' + option leasetime '12h' + option start '' # par exemple 145 + option limit '' # par exemple 5 + option dynamicdhcp '0' + list ra_flags 'none' + +6. Sauvegarder et valider avec : + + uci commit /etc/config/network + uci commit /etc/config/dhcp + /etc/init.d/network reload + /etc/init.d/dhcp reload + +## Affectation d'IPs + +### Affectation d'une IP à un sous-réseau + +L'affectation d'une IP à un sous-réseau nécessite la configuration prélable +du préfixe (voir plus haut), puis la création d'une interface virtuelle WAN. + +#### Méthode graphique + +On crée d'abord l'interface WAN virtuelle : + +1. Se rendre sur la page de configuration des interfaces du routeur (_Network > Interfaces_) +2. Créer une nouvelle interface (_Add new interface_) +3. Utiliser un nom cohérent (par exemple _wan3_) +4. Choisir le protocole _Static address_ +5. Utiliser le périphérique correspondant à l'interface _wan_ (chez nous, _eth2_) +6. Cliquer sur _Create interface_ +7. Dans le champ _IPv4 address_, remplir avec l'IP en notation CIDR (**avec /32**) +et cliquer sur les "..." +8. Dans l'onglet _Advanced Settings_, désactiver l'option _Delegate IPv6 prefixes_ +9. Dans l'onglet _Firewall Settings_, assigner à la zone _wan_ +10. Sauvegarder et appliquer les changements + +On crée ensuite une règle NAT pour le sous-réseau : + +11. Se rendre sur la page de configuration du pare-feu du routeur (_Network > Firewall_) +12. Aller à l'onglet _NAT Rules_ +13. Créer une nouvelle règle (_Add_) et paramétrer : + - _Name_ : mettre un nom cohérent + - _Protocol_ : laisser à _Any_ + - _Outbound zone_ : choisir _wan_ + - _Source address_ : utiliser le préfixe du sous-réseau en notation CIDR + - _Destination address_ : choisir _Any_ + - _Action_ : laisser _SNAT_ + - _Rewrite IP address_ : indiquer l'IP correspondant à l'interface WAN + virtuelle créée plus tôt. +14. Sauvegarder et appliquer les changements. + +#### Méthode en ligne de commande + +On crée d'abord l'interface WAN virtuelle : + +1. Se connecter en SSH au routeur +2. Ouvrir le fichier `/etc/config/network` et ajouter le bloc de configuration suivant : + + config interface '' # par exemple _wan2_ + option proto 'static' + option device '' # par exemple, _eth2_ + list ipaddr '' # avec /32 + option delegate '0' + +3. Sauvegarder et valider avec : + + uci commit /etc/config/network + /etc/init.d/network reload + +On crée ensuite une règle NAT pour le sous-réseau : + +4. Ouvrir le fichier `/etc/config/firewall` et ajouter le bloc de configuration suivant : + + config nat + option name '' + option src '' # par exemple, _wan_ + option target 'SNAT' + option src_ip '' + option snat_ip '' + list proto 'all' + +5. Sauvegarder et valider avec : + + uci commit /etc/config/firewall + /etc/init.d/firewall reload + +### Affectation d'une IP à une machine virtuelle + +L'affectation d'une IP à une machine virtuelle ne nécessite que la configuration +d'une règle DHCP. + +#### Méthode graphique + +1. Se rendre sur la page de configuration des interfaces du routeur (_Network > DHCP_) +2. Se rendre dans l'onglet _Static Leases_ +13. Créer une nouvelle règle (_Add_) et paramétrer : + - _Hostname_ : indiquer le nom de domaine de la machine virtuelle + - _MAC-Address_ : indiquer l'adresse MAC de la machine virtuelle + - _IPv4-Address_ : indiquer l'IP attribuée + - _DUID_ : choisir le DUID de la machine virtuelle + - _IPv6 Suffix_ : choisir un suffixe pour l'IPv6 s'il y a lieu +14. Sauvegarder et appliquer les changements. + +#### Méthode en ligne de commande + +1. Se connecter en SSH au routeur +2. Ouvrir le fichier `/etc/config/dhcp` et ajouter le bloc de configuration suivant : + + config host + option name '' + option dns '1' + option mac '' + option hostid '' + option duid '' + option ip '' + +3. Sauvegarder et valider avec : + + uci commit /etc/config/dhcp + /etc/init.d/dhcp reload diff --git a/procédures/migration_vm.md b/procédures/migration_vm.md index c101c20..981e68c 100644 --- a/procédures/migration_vm.md +++ b/procédures/migration_vm.md @@ -8,25 +8,25 @@ Nous prenons ici l'exemple des machines `mother` et `aunt` du site `Le Parc`. Pour migrer une machine de `mother` à `aunt` : - /opt/sharedfs/outils/migrate_to_aunt.sh NOM_DE_VM + /srv/vmverse/outils/migrate_to_aunt.sh NOM_DE_VM Pour migrer une machine de `aunt` à `mother` : - /opt/sharedfs/outils/migrate_to_mother.sh NOM_DE_VM + /srv/vmverse/outils/migrate_to_mother.sh NOM_DE_VM ## Migration "normale" d'un groupe de machine par nombre Pour migrer X machines de `mother` vers `aunt` : - /opt/sharedfs/outils/migrate_many_to_aunt.sh X + /srv/vmverse/outils/migrate_many_to_aunt.sh X Pour migrer X machines de `aunt` vers `mother` : - /opt/sharedfs/outils/migrate_many_to_mother.sh X + /srv/vmverse/outils/migrate_many_to_mother.sh X ## Migration d'urgence (P2P) de `aunt` vers `mother` (sans DRBD) Pour migrer une machine de `aunt` vers `mother` lorsque DRBD ne fonctionne pas : - /opt/sharedfs/outils/migrate_to_mother_p2p.sh NOM_DE_VM + /srv/vmverse/outils/migrate_to_mother_p2p.sh NOM_DE_VM diff --git a/procédures/sauvegardes.md b/procédures/sauvegardes.md index bf502c1..c30f267 100644 --- a/procédures/sauvegardes.md +++ b/procédures/sauvegardes.md @@ -1,40 +1,4 @@ # Gestion des sauvegardes l'infrastructure -Pour les sauvegardes, nous utilisons au sein de notre infrastructure les logiciels suivants : - -- rsync pour les machines physiques -- [virt-backup](https://pypi.org/project/virt-backup/) pour les machines virtuelles -- les [scripts d'administration](https://git.a-lec.org/a-lec/commissions/infrastructure/infra-generale) - -Les sauvegardes sont configurées comme indiqués dans le [dépôt dédié](https://git.a-lec.org/a-lec/commissions/infrastructure/sauvegardes) - -## Sauvegarde des machines virtuelles - -Sur une des machines physiques (ex: mother ou aunt). - -### Lister les sauvegardes - -Pour lister le résumé des sauvegardes : - - sudo virt-backup list - -Pour lister les sauvegardes d'une machine particulière : - - sudo virt-backup list -D NOM_DE_VM - -### Pour réaliser une sauvegarde de toutes les machines d'un hôte physique - -Il n'est pas possible de réaliser une sauvegarde d'une machine isolée. - - sudo virt-backup backup - -### Pour restorer une sauvegarde - -Nous avons un script spécial pour restaurer une sauvegarde : - - sudo /opt/sharedfs/restore.sh NOM_DE_VM DATE_DE_SAUVEGARDE NOM_DE_DISQUE CHEMIN_CIBLE - -### Nettoyer les sauvegardes - - sudo virt-backup clean - +La documentation du système de sauvegarde est déplacée +[ici](https://forge.a-lec.org/cominfra/sauvegardes/src/branch/main/README.md) diff --git a/sites/fontainebleau.md b/sites/fontainebleau.md index 80df600..575836f 100644 --- a/sites/fontainebleau.md +++ b/sites/fontainebleau.md @@ -2,8 +2,13 @@ ## Localisation -Situé dans la cave d'un adhérent de Libre en Communs à Fontainebleau -(Seine-et-Marne). +Situé dans la cave d'adhérents de Libre en Communs à Fontainebleau +en Seine-et-Marne (77). + +### Matériel annexe + +Matériel annexe dans la baie de ce site : +- ventilateurs (toit de baie). @@ -11,22 +16,36 @@ Situé dans la cave d'un adhérent de Libre en Communs à Fontainebleau -Site principal actuellement périphérique de l'infrastructure, il est relié au réseau -par le routeur [`fontainebleau.libre-en-communs.org`]() : -``` -IPv4 : 80.67.176.40/32 +Site principal de l'infrastructure, il est relié au réseau par le routeur +`fontainebleau.libre-en-communs.org`. -IPv6 : 2001:910:1028::/48 +Les caractéristiques réseaux de ce site sont les suivantes : +``` +IPv4 : 80.67.176.40/32 +IPv4 : 80.67.160.144/29 +IPv6 : 2001:910:1028::/48 ``` -Il accueille les machines physiques suivantes : +Pour la gestion du préfixe IPv4, voir +[la documentation dédiée](procédures/gestion_IP_préfixe.md). + +Ce site accueille les machines physiques suivantes : - [`anthea.libre-en-communs.org`](../pm/anthea.md) ; +- [`aelita.libre-en-communs.org`](../pm/aelita.md) ; - [`gardefou.libre-en-communs.org`](../pm/gardefou.md). -L'ensemble des machines physiques et des machines virtuelles est sauvegardé par les machines `gardefou` (présente sur ce site) et `sauvkipeu` (distante). +Les machines physiques `anthea`et `aelita` sont couplées pour permettre une +migration transparente des machines virtuelles. Nous utilisons l'hyperviseur +`KVM/libvirt` et le système de réplication `DRBD` pour ce faire. -## Matériel annexe +L'utilisation de `DRBD` consiste en la réplication en temps réel de la +partition `/srv/vmverse`, qui accueille les images de disque des machines +virtuelles. -On compte également du matériel annexe dans la baie de ce site : -- ventilateurs (toit de baie). + + +L'ensemble des machines physiques et des machines virtuelles est sauvegardé par +les machines `gardefou` (présente sur ce site) et `sauvkipeu` (distante). +Voir la +[documentation spécifique de la sauvegarde](https://forge.a-lec.org/cominfra/sauvegardes). diff --git a/sites/leparc.md b/sites/leparc.md index 0a83da5..bda5246 100644 --- a/sites/leparc.md +++ b/sites/leparc.md @@ -2,45 +2,54 @@ ## Localisation -Situé dans le local de Libre en Communs correspondant au siège social, -à Saint-Maur-des-Fossés dans le 94 (Val-de-Marne). +Situé dans le local de Libre en Communs correspondant au siège social, +à Saint-Maur-des-Fossés dans le Val-de-Marne (94). -## Caractéristiques techniques +### Matériel annexe - - -Site principal actuellement coeur de l'infrastructure, il est relié au réseau -par le routeur [`leparc.libre-en-communs.org`]() : -``` -IPv4 : 80.67.179.96/32 - 80.67.176.33/32 - -IPv6 : 2001:910:1021::/48 -``` - -Il accueille les machines physiques suivantes : -- [`mother.libre-en-communs.org`](../pm/mother.md) ; -- [`aunt.libre-en-communs.org`](../pm/aunt.md) ; -- [`sauvkipeu.libre-en-communs.org`](../pm/sauvkipeu.md). - - - -Les machines physiques `mother`et `aunt` sont couplées pour permettre une migration transparente -des machines virtuelles. Nous utilisons l'hyperviseur `KVM/libvirt` et `DRBD` -pour ce faire. - -L'utilisation de `DRBD` consiste en la réplication en temps réel de la partition `/srv/vmverse`, qui accueille les images de disque des machines virtuelles. - -L'ensemble des machines physiques et des machines virtuelles est sauvegardé par les machines `sauvkipeu` (présente sur ce site) et `gardefou` (distante). - -## Matériel annexe - -On compte également du matériel annexe dans la baie de ce site : +Matériel annexe dans la baie de ce site : - onduleurs : + 1 × EATON Ellipse PRO 1600 VA ; + 1 × EATON Ellipse PRO 1200 VA. - ventilateurs (toit de baie) ; - ventilateur d'extraction (non installé). +## Caractéristiques techniques + + + +Site principal de l'infrastructure, il est relié au réseau par le routeur +`leparc.libre-en-communs.org` + +Les caractéristiques réseaux de ce site sont les suivantes : +``` +IPv4 : 80.67.176.33/32 +IPv4 : 80.67.160.152/29 +IPv6 : 2001:910:1021::/48 +``` + +Pour la gestion du préfixe IPv4, voir +[la documentation dédiée](procédures/gestion_IP_préfixe.md). + +Ce site accueille les machines physiques suivantes : +- [`mother.libre-en-communs.org`](../pm/mother.md) ; +- [`aunt.libre-en-communs.org`](../pm/aunt.md) ; +- [`sauvkipeu.libre-en-communs.org`](../pm/sauvkipeu.md). + +Les machines physiques `mother`et `aunt` sont couplées pour permettre une +migration transparente des machines virtuelles. Nous utilisons l'hyperviseur +`KVM/libvirt` et le système de réplication `DRBD` pour ce faire. + +L'utilisation de `DRBD` consiste en la réplication en temps réel de la +partition `/srv/vmverse`, qui accueille les images de disque des machines +virtuelles. + + + +L'ensemble des machines physiques et des machines virtuelles est sauvegardé par +les machines `sauvkipeu` (présente sur ce site) et `gardefou` (distante). +Voir la +[documentation spécifique de la sauvegarde](https://forge.a-lec.org/cominfra/sauvegardes). +