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

@ -24,11 +24,12 @@ Les sites principaux sont :
Un site principal doit répondre à certains prérequis : Un site principal doit répondre à certains prérequis :
- il dispose d'au moins une baie au format _rack 19 pouces_ ; - 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 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, à - il comporte un routeur **nommé d'après le nom du site** (par exemple, à
Fontainebleau, le routeur se nomme `fontainebleau`) ; Fontainebleau, le routeur se nomme `fontainebleau`) ;
- il permet un accès à Internet fibré (FTTH) via une ligne dédiée souscrite auprès - il permet un accès à Internet fibré (FTTH) via une ligne dédiée souscrite
d'un opérateur de la [FFDN]() ; auprès d'un opérateur de la [FFDN](https://ffdn.org/) ;
- il dispose d'un compteur électrique pour mesurer la consommation globale des - il dispose d'un compteur électrique pour mesurer la consommation globale des
dispositifs. dispositifs.
@ -40,13 +41,14 @@ Les sites annexes sont :
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). (format tour, par exemple).
Un site annexe n'est utilisable que pour des opérations non critiques et annexes Un site annexe n'est utilisable que pour des opérations non critiques et
de l'infrastructure (ou secondaires/redondantes). Les conditions prérequises pour annexes de l'infrastructure (ou secondaires/redondantes). Les conditions
un tel site sont plus souples mais il n'en demeure pas moins que les machines physiques prérequises pour un tel site sont plus souples mais il n'en demeure pas moins
doivent être [éligibles](procédures/éligibilité_matériel.md) et l'accès internet que les machines physiques doivent être
éthiquement acceptable. [é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 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 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._ Libre en Communs ont accès aux machines physiques sur site ou à distance._
Parmi ces procédures : 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) - [Accès aux serveurs physiques](procédures/acces_machine_physique.md)
- [Création de serveurs physiques](procédures/création_pm.md) - [Création de serveurs physiques](procédures/création_pm.md)
- [Redémarrage des machines physiques](procédures/reboot_physique.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,55 +4,67 @@
Carte mère : 1 × Asus KGPN-D16 Rev 1.03G Carte mère : 1 × Asus KGPN-D16 Rev 1.03G
CPU : 2 × AMD Opteron 6280SE CPU : 2 × AMD Opteron 6280SE
RAM : 32 Gio RAM : 47 Gio
Alimentation : *(à compléter)* Alimentation : *(à compléter)*
Casier : *(à compléter)* Casier : 1 × 1 × Inter-Tech IPC 4U
Stockage de masse : *(à compléter)* Stockage de masse : 2 × KINGSTON SEDC600M3840G 4 To
## Logiciel ## Logiciel
Micro-programme : Coreboot 4.6 + SeaBIOS, sans blob privateur Micro-programme : GNU Boot 0.1-rc3
Système d'exploitation : Debian GNU/Linux-libre 11 (Bullseye) Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo
Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org) Noyau : Linux-libre
Virtualisation : QEMU/KVM (`libvirt`) Virtualisation : QEMU/KVM (`libvirt`)
Gestion du onduleur : NUT/UPS
Audit des paquets mensuel : `vrms` Audit des paquets mensuel : `vrms`
Sécurités de la maintenance : `etckeeper`, `mollyguard`, `tig`, `lm-sensors`, `fancontrol`, `screen` Sécurités de la maintenance : `etckeeper`, `mollyguard`, `tig`, `lm-sensors`, `fancontrol`, `screen`
Mail Transfer Agent : `postfix` Mail Transfer Agent : `postfix`
Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb`
## Caractéristiques notables ## Caractéristiques notables
Domaine : `anthea.libre-en-communs.org` Domaine : `anthea.libre-en-communs.org`
Adresse ipv4 publique : `80.67.176.40` 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` Adresse ipv6 publique : `2001:910:1028::2`
Emplacement des images de disques des machines virtuelles : `/srv/vmverse` Emplacement des images de disques des machines virtuelles : `/srv/vmverse`
### Configuration réseau ### 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 #### /etc/network/interfaces
<details> <details>
auto lo br0 auto lo br0
iface lo inet loopback iface lo inet loopback
# The primary network interface
allow-hotplug ens10 allow-hotplug ens10
allow-hotplug ens9 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 # bridge for vm
iface br0 inet static iface br0 inet dhcp
bridge_ports ens10 bridge_ports ens11f0
address 192.168.1.2
gateway 192.168.0.1
broadcast 192.168.255.255
netmask 255.255.0.0
iface br0 inet6 static
bridge_ports ens10
address 2001:910:1028:0::2/128
gateway 2001:910:1028::1
iface br0 inet6 dhcp
bridge_ports ens11f0
</details> </details>
@ -65,33 +77,97 @@ Emplacement des images de disques des machines virtuelles : `/srv/vmverse`
AddressFamily any AddressFamily any
ListenAddress 0.0.0.0 ListenAddress 0.0.0.0
ListenAddress :: ListenAddress ::
PubkeyAuthentication yes PubkeyAuthentication yes
PasswordAuthentication no PasswordAuthentication no
PermitEmptyPasswords no PermitEmptyPasswords no
ChallengeResponseAuthentication no ChallengeResponseAuthentication no
UsePAM yes UsePAM yes
AllowAgentForwarding yes AllowAgentForwarding yes
AllowTcpForwarding yes AllowTcpForwarding yes
GatewayPorts yes GatewayPorts yes
X11Forwarding no X11Forwarding no
PrintMotd no PrintMotd no
TCPKeepAlive yes TCPKeepAlive yes
PermitTunnel 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 ### /etc/drbd.d/drbd1.res
DenyUsers admin666 <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> </details>

View File

@ -7,11 +7,11 @@ CPU : 2 × AMD Opteron 6282SE
RAM : 7 × Crucial RDIMM 16Go CT2K16G3ERSLD4160B RAM : 7 × Crucial RDIMM 16Go CT2K16G3ERSLD4160B
Alimentation : HX750 Alimentation : HX750
Casier : 1 × Inter-Tech IPC 4U-4129-N SSI-EEB (Rack) 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 ## 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 Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo
Noyau : Linux-libre Noyau : Linux-libre
Virtualisation : QEMU/KVM (`libvirt`) Virtualisation : QEMU/KVM (`libvirt`)
@ -26,43 +26,44 @@ Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb`
Domaine : `aunt.libre-en-communs.org` Domaine : `aunt.libre-en-communs.org`
Adresse ipv4 publique : `80.67.176.33` Adresse ipv4 publique : `80.67.176.33`
Adresse ipv4 locale : `192.168.1.3` 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` Adresse ipv6 publique : `2001:910:1021::3`
### Configuration réseau ### 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 #### /etc/network/interfaces
<details> <details>
# The loopback network interface # The loopback network interface
auto lo auto lo br0
iface lo inet loopback iface lo inet loopback
allow-hostplug ens9
allow-hostplug ens10
allow-hostplug ens13f0
allow-hostplug ens13f1
# The primary network interface # aunt
allow-hotplug ens9
allow-hotplug ens10
allow-hotplug ens13f0
allow-hotplug ens13f1
# mother!
iface ens13f1 inet static iface ens13f1 inet static
address 192.168.254.3 address 192.168.254.3
post-up /usr/bin/ip link set ens13f1 mtu 9000 post-up /usr/bin/ip link set ens13f1 mtu 9000
# bridge for vm # bridge for vm
auto br0 iface br0 inet dhcp
iface br0 inet static bridge_ports ens13f0
bridge_ports ens13f0
address 192.168.1.3 iface br0 inet6 dhcp
gateway 192.168.0.1
broadcast 192.168.255.255
netmask 255.255.0.0
iface br0 inet6 static
bridge_ports ens13f0 bridge_ports ens13f0
address 2001:910:1021::3/128
gateway 2001:910:1021::
</details> </details>
@ -75,33 +76,22 @@ Adresse ipv6 publique : `2001:910:1021::3`
AddressFamily any AddressFamily any
ListenAddress 0.0.0.0 ListenAddress 0.0.0.0
ListenAddress :: ListenAddress ::
PubkeyAuthentication yes PubkeyAuthentication yes
PasswordAuthentication no PasswordAuthentication no
PermitEmptyPasswords no PermitEmptyPasswords no
ChallengeResponseAuthentication no ChallengeResponseAuthentication no
UsePAM yes UsePAM yes
AllowAgentForwarding yes AllowAgentForwarding yes
AllowTcpForwarding yes AllowTcpForwarding yes
GatewayPorts yes GatewayPorts yes
X11Forwarding no X11Forwarding no
PrintMotd no PrintMotd no
TCPKeepAlive yes TCPKeepAlive yes
PermitTunnel yes PermitTunnel yes
AcceptEnv LANG LC\_* GIT\_*
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
Subsystem sftp /usr/lib/openssh/sftp-server DenyUsers admin666
Match User admin666 Address *,!127.0.0.1,!::1
DenyUsers admin666
</details> </details>
@ -110,53 +100,51 @@ Adresse ipv6 publique : `2001:910:1021::3`
### /etc/drbd.d/drbd1.res ### /etc/drbd.d/drbd1.res
<details> <details>
resource drbd1 { resource drbd1 {
meta-disk internal; meta-disk internal;
device /dev/drbd1; device /dev/drbd1;
startup { startup {
become-primary-on both; become-primary-on both;
} }
net { net {
verify-alg sha256; verify-alg sha256;
allow-two-primaries yes; allow-two-primaries yes;
#fencing resource-and-stonith; after-sb-0pri discard-zero-changes;
after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary;
after-sb-1pri discard-secondary; protocol C;
protocol C; ko-count 0;
ko-count 0; timeout 119;
timeout 119; ping-int 120;
ping-int 120; connect-int 120;
connect-int 120; max-buffers 36k;
#max-epoch-size 20000; sndbuf-size 0;
max-buffers 36k; rcvbuf-size 0;
sndbuf-size 0; }
rcvbuf-size 0; handlers {
} pri-lost-after-sb "killall virt-backup";
handlers { }
pri-lost-after-sb "killall virt-backup && umount /opt/sharedfs && drbdadm secondary drbd1"; disk {
} on-io-error pass_on;
disk { md-flushes;
on-io-error pass_on; c-fill-target 10M;
md-flushes; c-max-rate 700M;
c-fill-target 10M; c-plan-ahead 0;
c-max-rate 700M; c-min-rate 4M;
c-plan-ahead 0; resync-rate 500M;
c-min-rate 4M; }
resync-rate 500M;
}
on mother { # hostname must match `uname -n` output on mother.libre-en-communs.org { # hostname must match `uname -n` output
disk /dev/md1; # Logical Volume on the provided host 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 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 on aunt.libre-en-communs.org { # hostname must match `uname -n` output
disk /dev/md1; # Logical Volume on the provided host 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 address 192.168.254.3:7789; # IP Address to be used to connect to the node with port
} }
} }
</details> </details>
@ -164,22 +152,22 @@ Adresse ipv6 publique : `2001:910:1021::3`
<details> <details>
cluster: cluster:
name = sharedfs name = vmverse
heartbeat_mode = local heartbeat_mode = local
node_count = 2 node_count = 2
node: node:
cluster = sharedfs cluster = vmverse
number = 0 number = 0
ip_port = 7777 ip_port = 7777
ip_address = 192.169.254.3 ip_address = 192.168.254.3
name = aunt name = aunt
node: node:
cluster = sharedfs cluster = vmverse
number = 1 number = 1
ip_port = 7777 ip_port = 7777
ip_address = 192.169.254.2 ip_address = 192.168.254.2
name = mother name = mother
</details> </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 ## 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) 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) Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org)
Audit des paquets mensuel : `vrms` Audit des paquets mensuel : `vrms`
@ -24,7 +24,7 @@ Mail Transfer Agent : `postfix`
## Caractéristiques notables ## Caractéristiques notables
Domaine : `sauvkipeu.libre-en-communs.org` Domaine : `gardefou.libre-en-communs.org`
Adresse ipv6 publique : `2001:910:1021::5` Adresse ipv6 publique : `2001:910:1021::5`
### Configuration réseau ### Configuration réseau

View File

@ -11,7 +11,7 @@ Stockage de masse : 2 × KINGSTON SEDC600M3840G 4 To
## Logiciel ## 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 Système d'exploitation : Trisquel GNU/Linux-libre 11 Aramo
Noyau : Linux-libre Noyau : Linux-libre
Virtualisation : QEMU/KVM (`libvirt`) Virtualisation : QEMU/KVM (`libvirt`)
@ -26,41 +26,45 @@ Réplication de stockage (vm) : `drbd`, `ocfs2`, `o2cb`
Domaine : `mother.libre-en-communs.org` Domaine : `mother.libre-en-communs.org`
Adresse ipv4 publique : `80.67.176.33` Adresse ipv4 publique : `80.67.176.33`
Adresse ipv4 locale : `192.168.1.2` 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` Adresse ipv6 publique : `2001:910:1021::2`
### Configuration réseau ### 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 #### /etc/network/interfaces
<details> <details>
# The loopback network interface
auto lo br0 auto lo br0
iface lo inet loopback iface lo inet loopback
allow-hostplug ens9
# The primary network interface allow-hostplug ens10
allow-hotplug ens10 allow-hostplug ens13f0
allow-hotplug ens9 allow-hostplug ens13f1
allow-hotplug ens13f0
allow-hotplug ens13f1
# aunt # aunt
iface ens13f1 inet static iface ens13f1 inet static
address 192.168.254.2 address 192.168.254.2
post-up /usr/bin/ip link set ens13f1 mtu 9000 post-up /usr/bin/ip link set ens13f1 mtu 9000
# bridge for vm # bridge for vm
iface br0 inet static iface br0 inet dhcp
bridge_ports ens13f0 bridge_ports ens13f0
address 192.168.1.2
gateway 192.168.0.1 iface br0 inet6 dhcp
broadcast 192.168.255.255 bridge_ports ens13f0
netmask 255.255.0.0
iface br0 inet6 static
bridge_ports ens13f0
address 2001:910:1021:0::2/128
gateway 2001:910:1021::1
</details> </details>
@ -73,33 +77,23 @@ Adresse ipv6 publique : `2001:910:1021::2`
AddressFamily any AddressFamily any
ListenAddress 0.0.0.0 ListenAddress 0.0.0.0
ListenAddress :: ListenAddress ::
PubkeyAuthentication yes PubkeyAuthentication yes
PasswordAuthentication no PasswordAuthentication no
PermitEmptyPasswords no PermitEmptyPasswords no
ChallengeResponseAuthentication no ChallengeResponseAuthentication no
UsePAM yes UsePAM yes
AllowAgentForwarding yes AllowAgentForwarding yes
AllowTcpForwarding yes AllowTcpForwarding yes
GatewayPorts yes GatewayPorts yes
X11Forwarding no X11Forwarding no
PrintMotd no PrintMotd no
TCPKeepAlive yes TCPKeepAlive yes
PermitTunnel 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> </details>
@ -142,13 +136,13 @@ Adresse ipv6 publique : `2001:910:1021::2`
resync-rate 500M; resync-rate 500M;
} }
on mother { # hostname must match `uname -n` output on mother.libre-en-communs.org { # hostname must match `uname -n` output
disk /dev/md1; # Logical Volume on the provided host 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 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 on aunt.libre-en-communs.org { # hostname must match `uname -n` output
disk /dev/md1; # Logical Volume on the provided host 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 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 ## 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) 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) Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org)
Audit des paquets mensuel : `vrms` Audit des paquets mensuel : `vrms`

View File

@ -1,34 +1,43 @@
# Accès aux machines physiques de l'infrastructure # 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 ## Via SSH
l'infrastructure 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 ### Configuration SSH serveur
la clé publique (ssh) du nouvel admin dans `/home/cominfra/.ssh/authorized_keys`
et `/home/admin666/.ssh/authorized_keys`.
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.
## Configuration SSH client 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`
Éditer le fichier `~/.ssh/config` : ### Configuration SSH client
Une personne souhaitant se connecter à une machine physique doit configurer son
client SSH, généralement dans 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 host <machine_physique>-proxy.libre-en-communs.org
Hostname machine_physique.libre-en-communs.org Hostname <machine_physique>.libre-en-communs.org
User cominfra User cominfra
Port 222 Port <port>
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host machine_physique.libre-en-communs.org host <machine_physique>.libre-en-communs.org
User admin666 User admin666
Port 222 Port <port>
ProxyJump machine_physique-proxy.libre-en-communs.org ProxyJump <machine_physique>-proxy.libre-en-communs.org
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL 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 host mother-proxy.libre-en-communs.org
Hostname mother.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 ProxyJump anthea-proxy.libre-en-communs.org
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host britt-proxy.libre-en-communs.org host aelita-proxy.libre-en-communs.org
Hostname britt.libre-en-communs.org Hostname aelita.libre-en-communs.org
User cominfra User cominfra
Port 222 Port 223
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host britt.libre-en-communs.org host aelita.libre-en-communs.org
User admin666 User admin666
Port 222 Port 223
ProxyJump britt-proxy.libre-en-communs.org ProxyJump aelita-proxy.libre-en-communs.org
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host gardefou-proxy.libre-en-communs.org 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 ### 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 ### 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 ### Accès aux machines virtuelles
Si besoin, l'administrateur d'infrastructure peut accéder aux machines virtuelles Si besoin, une personne administration l'infrastructure peut accéder aux
qui s'exécutent sur une machine physique, et ce depuis le compte `admin666` machines virtuelles qui s'exécutent sur une machine physique, et ce depuis le
de n'importe quel serveur. Il suffira d'utiliser la commande `ssh <nom de machine>`. 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 # 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` : (Prérequis : avoir installé `virt-manager` sur sa machine)
```
apt install virt-manager
```
## 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` : Côté client, configurer le client `virt-manager` :
- Menu > Fichier > Ajouter une connexion… - Menu > Fichier > Ajouter une connexion…
@ -17,45 +17,6 @@ Côté client, configurer le client `virt-manager` :
- Hyperviseur : QEMU/KVM, - Hyperviseur : QEMU/KVM,
- Se connecter à l'hôte distant via SSH : cocher, - Se connecter à l'hôte distant via SSH : cocher,
- Nom d'utilisateur : virt-user, - Nom d'utilisateur : virt-user,
- Nom de l'hôté : anthea.libre-en-communs.org:222 - Nom de l'hôté : machine-physique.libre-en-communs.org:port
- 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
- cliquer sur « Connecter ». - 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 ### 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. En règle générale, l'accès aux machines virtuelles ne se fait pas directement.
Pour qu'un nouvel administrateur puisse accéder à des machines, il faut : 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 : 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. - 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`) ### 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 host <machine_physique>-proxy.libre-en-communs.org
Hostname machine_physique.libre-en-communs.org Hostname <machine_physique>.libre-en-communs.org
User cominfra User cominfra
Port 222 Port <port>
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host *.a-lec.org host *.a-lec.org
User admin666 User admin666
Port 22 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 SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host *.chalec.org host *.chalec.org
User admin666 User admin666
Port 22 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 SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
``` ```
Pour fixer les variables Git directement dans la conf, ajouter un `SetEnv` avant `SendEnv` : Pour fixer les variables Git directement dans la conf, il est possibe d'ajouter
``` un `SetEnv` avant `SendEnv` :
SetEnv GIT_AUTHOR_NAME="Moi" GIT_AUTHOR_EMAIL="moncourriel"
```
```
SetEnv GIT_AUTHOR_NAME="<nom>" GIT_AUTHOR_EMAIL="<courriel>"
```
### Procédure de connexion avec config dans ~/.ssh/config ### 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 ### 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:<port> admin666@<nom de vm> -p 22
- `ssh -i 'CLE_PRIV' -J cominfra@machine_physique.libre-en-communs.org:223 admin666@NOM_DE_VM.a-lec.org -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. 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. 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` : Enrichir le fichier `leparc.libre-en-communs.org:/etc/nginx/reverse_proxy.conf` :
``` ```
server { server {

View File

@ -7,16 +7,16 @@ sudo apt install virtinst
Cloner la vm `generic.a-lec.org` ou `generic.chalec.org` : 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 : Vérifier la bonne création :
``` ```
sudo virsh list --inactive # Liste les vm inactives. 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 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é ; - se connecter en web sur le routeur du site concerné ;
- aller dans la section `Network` > `DHCP` > onglet `Static Leases` > bouton `Add` : - aller dans la section `Network` > `DHCP` > onglet `Static Leases` > bouton `Add` :
- `Hostname` : nom complet de la VM, - `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.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.1.x pour infra,
- un 192.168.2.x pour chalec, - 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' : - aller dans la section `Network` > 'Hostnames` > bouton 'Add' :
- `Hostname` : nom complet de la VM, - `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`. - cliquer sur `Save & Apply`.
Démarrer la vm : Démarrer la vm :
``` ```
sudo virsh start foo.a-lec.org sudo virsh start <nom de vm>
``` ```
Ouvrir une console sur la 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. 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 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` : Configurer le `hostname` :
``` ```
sudo hostnamectl set-hostname foo.a-lec.org 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` : 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` : 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 ## Migration "normale" d'un groupe de machine par nombre
Pour migrer X machines de `mother` vers `aunt` : 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` : 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) ## Migration d'urgence (P2P) de `aunt` vers `mother` (sans DRBD)
Pour migrer une machine de `aunt` vers `mother` lorsque DRBD ne fonctionne pas : 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 # Gestion des sauvegardes l'infrastructure
Pour les sauvegardes, nous utilisons au sein de notre infrastructure les logiciels suivants : La documentation du système de sauvegarde est déplacée
[ici](https://forge.a-lec.org/cominfra/sauvegardes/src/branch/main/README.md)
- 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

View File

@ -2,8 +2,13 @@
## Localisation ## Localisation
Situé dans la cave d'un adhérent de Libre en Communs à Fontainebleau Situé dans la cave d'adhérents de Libre en Communs à Fontainebleau
(Seine-et-Marne). 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%"> <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%"> <img src="../images/diagramme_fontainebleau.png" width="100%">
Site principal actuellement périphérique de l'infrastructure, il est relié au réseau Site principal de l'infrastructure, il est relié au réseau par le routeur
par le routeur [`fontainebleau.libre-en-communs.org`]() : `fontainebleau.libre-en-communs.org`.
```
IPv4 : 80.67.176.40/32
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) ; - [`anthea.libre-en-communs.org`](../pm/anthea.md) ;
- [`aelita.libre-en-communs.org`](../pm/aelita.md) ;
- [`gardefou.libre-en-communs.org`](../pm/gardefou.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 : <img src="../images/diagramme_leparc_drbd.png" width="100%">
- 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).

View File

@ -3,44 +3,53 @@
## Localisation ## Localisation
Situé dans le local de Libre en Communs correspondant au siège social, Situé dans le local de Libre en Communs correspondant au siège social,
à Saint-Maur-des-Fossés dans le 94 (Val-de-Marne). à Saint-Maur-des-Fossés dans le Val-de-Marne (94).
<img src="../images/image_leparc_photo.jpg" width="40%"> <img src="../images/image_leparc_photo.jpg" width="40%">
## Caractéristiques techniques ### Matériel annexe
<img src="../images/diagramme_leparc.png" width="100%"> Matériel annexe dans la baie de ce site :
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 :
- onduleurs : - onduleurs :
+ 1 × EATON Ellipse PRO 1600 VA ; + 1 × EATON Ellipse PRO 1600 VA ;
+ 1 × EATON Ellipse PRO 1200 VA. + 1 × EATON Ellipse PRO 1200 VA.
- ventilateurs (toit de baie) ; - ventilateurs (toit de baie) ;
- ventilateur d'extraction (non installé). - 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).