Refresh documentation!

This commit is contained in:
Adrien Bourmault 2024-06-17 20:03:55 +02:00
parent 8d78e61cff
commit 0ce07a4eee
Signed by: neox
GPG Key ID: 57BC26A3687116F6
23 changed files with 859 additions and 484 deletions

View File

@ -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.
<img src="images/image_carte_infra.png" width="100%">
### 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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Binary file not shown.

181
pm/aelita.md Normal file
View File

@ -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
<details>
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
</details>
## Configuration SSH
### /etc/ssh/sshd_config
<details>
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
</details>
## Configuration DRBD
### /etc/drbd.d/drbd1.res
<details>
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>
}
}
</details>
### /etc/ocfs2/cluster.conf
<details>
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
</details>
## 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

View File

@ -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
<details>
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
</details>
## 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_*
</details>
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
<details>
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>
}
}
</details>
### /etc/ocfs2/cluster.conf
<details>
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
</details>

View File

@ -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
<details>
# 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::
</details>
@ -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
</details>
@ -110,53 +100,51 @@ Adresse ipv6 publique : `2001:910:1021::3`
### /etc/drbd.d/drbd1.res
<details>
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
}
}
}
</details>
@ -164,22 +152,22 @@ Adresse ipv6 publique : `2001:910:1021::3`
<details>
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
</details>

View File

@ -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
<details>
# 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
</details>
## Configuration SSH
### /etc/ssh/sshd_config
<details>
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
</details>
## 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

View File

@ -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

View File

@ -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
<details>
# 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
</details>
@ -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
</details>
@ -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
}

View File

@ -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`

View File

@ -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 <machine_physique>-proxy.libre-en-communs.org
Hostname <machine_physique>.libre-en-communs.org
User cominfra
Port 222
Port <port>
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host machine_physique.libre-en-communs.org
host <machine_physique>.libre-en-communs.org
User admin666
Port 222
ProxyJump machine_physique-proxy.libre-en-communs.org
Port <port>
ProxyJump <machine_physique>-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 `<machine_physique>`, il faut exécuter :
```
ssh machine_physique.libre-en-communs.org
ssh <machine_physique>.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 `<machine_physique>`, 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@<machine_physique>.libre-en-communs.org:<port> 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 <nom de machine>`.
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 <nom de machine>`.
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
```

View File

@ -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 ».

View File

@ -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 <machine_physique>-proxy.libre-en-communs.org
Hostname <machine_physique>.libre-en-communs.org
User cominfra
Port 222
Port <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 <machine_physique>-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 <machine_physique>-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="<nom>" GIT_AUTHOR_EMAIL="<courriel>"
```
### 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 <nom de vm>` 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:<port> admin666@<nom de vm> -p 22
```

View File

@ -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 {

View File

@ -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/<dossier>/<nom de vm>.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 <nom de vm> # 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 <nom de vm>
```
Ouvrir une console sur la vm :
```
sudo virsh console foo.a-lec.org
sudo virsh console <nom de vm>
```
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.<VALEUR1>.<VALEUR2>/32
- address 2001:910:1021::4/128
+ address 2001:910:1021::<VALEUR2>/128
```
Configurer le `hostname` :
```
sudo hostnamectl set-hostname foo.a-lec.org

View File

@ -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 '<nom de l'interface>' # par exemple _wan2_
option proto 'static'
option device '<nom du périphérique>' # par exemple, _eth2_
list ipaddr '<prefixe en notation CIDR>'
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 '<nom de l'interface>' # par exemple _lan2_
option proto 'static'
option device '<nom du périphérique>' # par exemple, _br-lan_
list ipaddr '<prefixe en notation CIDR>'
option delegate '0'
5. Ouvrir le fichier `/etc/config/dhcp` et ajouter le bloc de configuration suivant :
config dhcp '<nom de l'interface>' # par exemple _lan2_
option interface '<nom de l'interface>'
option leasetime '12h'
option start '<adresse de départ>' # par exemple 145
option limit '<nombre d adresses>' # 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 '<nom de l'interface>' # par exemple _wan2_
option proto 'static'
option device '<nom du périphérique>' # par exemple, _eth2_
list ipaddr '<adresse IP en notation CIDR>' # 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 '<nom de la règle>'
option src '<nom de la zone>' # par exemple, _wan_
option target 'SNAT'
option src_ip '<adresse IP du sous-réseau en CIDR>'
option snat_ip '<adresse IP attribuée, sans CIDR>'
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 '<nom de domaine de la machine>'
option dns '1'
option mac '<adresse MAC de la machine>'
option hostid '<suffixe IPv6 si besoin>'
option duid '<DUID de la machine>'
option ip '<IP attribuée>'
3. Sauvegarder et valider avec :
uci commit /etc/config/dhcp
/etc/init.d/dhcp reload

View File

@ -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

View File

@ -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)

View File

@ -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).
<img src="../images/image_fontainebleau_photo.jpg" width="40%">
@ -11,22 +16,36 @@ Situé dans la cave d'un adhérent de Libre en Communs à Fontainebleau
<img src="../images/diagramme_fontainebleau.png" width="100%">
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).
<img src="../images/diagramme_leparc_drbd.png" width="100%">
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).

View File

@ -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).
<img src="../images/image_leparc_photo.jpg" width="40%">
## Caractéristiques techniques
### Matériel annexe
<img src="../images/diagramme_leparc.png" width="100%">
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).
<img src="../images/diagramme_leparc_drbd.png" width="100%">
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
<img src="../images/diagramme_leparc.png" width="100%">
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.
<img src="../images/diagramme_leparc_drbd.png" width="100%">
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).