Retour : Page Principale > sommaire serveurs & domaines > Osyris
Partitionnement :
Détails des options à lire ici et expliquer là :
hdsize : taille utilisée
swapsize : 8GB pour le swap ça devrait suffire (ça tombe bien c'est le max (ou sinon hdsize/8), et 4GB minimum)
maxroot : 10GB devraient suffire pour le system, une install c'est moins de 2GB (hdsize/4 maximum)
maxvz : lĂ oĂč on va stocker les containers
Note : envisager de mettre à jour vers la version 5 - cela dit si les VMs sont à jour ça n'apporte pas grand chose de toucher à l'hÎte, et c'est trÚs risqué.
Attention, ces outils ne sont pas [encore] versionnés, pour des raisons de confidentialité (stratégie à valider); pour l'instant il faut donc répercuter les modifications sur l'hÎte et toutes les VMs à chaque fois (utiliser PSCP, voir ci dessous)
Attention 2, ces outils font des trucs dangereux, faire bien attention avant de les lancer !
Les VMs sont listées dans /root/outils/vms.list.
L'outil execute-moi-ca-partout.sh simplifie l'utilisation de ce machin.
Copie d'un fichier
/etc/cron.monthly/sauvegarde_vms
Important : lors de la création d'une nouvelle VM, penser à ajouter son ID à ce script
Un backup est effectué chaque 1er jour du mois, et seuls 2 backups sont conservés pour chaque VM.
installation de megacli, on trouve le dépot de paquets là :
http://hwraid.le-vert.net/wiki/DebianPackages
Ajout du dépot et installation de:
megacli megaclisas-status
Pour avoir le statut, lancer :
ou
Ajout d'un cron.hourly qui envoi des mails si megacli rapporte un problĂšme :
/etc/cron.hourly/check_raid
Full doc : http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS
Puis installation smartmontools avec activation de smartd avec le /etc/smartd.conf :
Oui mais voilà : notre hébergeur SupAgro bouche le port NTP; il faut donc utiliser le serveur NTP de SupAgro : ntp.supagro.inra.fr
Les instructions ci-dessous sont inspirées de cette doc.
Voir MemoOpenVPNSupAgro
Exemple de Virtualhost pour beta.tela-botanica.org :
Procédure de configuration d'Osyris
Installation de Proxmox 4.2
Une clef USB, une copie bootable de Proxmox VE 4.2, et BIM c'est installé.Partitionnement :
- 12 Gio sur /
- 230 Gio sur LVM (pour les disques virtuels des VMs)
Détails des options à lire ici et expliquer là :
hdsize : taille utilisée
swapsize : 8GB pour le swap ça devrait suffire (ça tombe bien c'est le max (ou sinon hdsize/8), et 4GB minimum)
maxroot : 10GB devraient suffire pour le system, une install c'est moins de 2GB (hdsize/4 maximum)
maxvz : lĂ oĂč on va stocker les containers
- Defines the maximum size of the data volume. The actual size of the data volume is:
- datasize = hdsize - rootsize - swapsize - minfree
- Where datasize cannot be bigger than maxvz.
- Defines the amount of free space left in LVM volume group pve. With more than 128GB storage available the default is 16GB, else hdsize/8 will be used.
Note : envisager de mettre à jour vers la version 5 - cela dit si les VMs sont à jour ça n'apporte pas grand chose de toucher à l'hÎte, et c'est trÚs risqué.
Montage de Grosdur en NFS
Osyris utilise le RAID 5 grosdur d'Agathis pour stocker ses backups de VMs (prĂȘts Ă ĂȘtre rĂ©injectĂ©s). Le dossier /grosdur/proxmox a Ă©tĂ© montĂ© Ă l'aide de l'interface graphique de Proxmox; il est maintenant montĂ© automatiquement Ă chaque dĂ©marrage.Outils d'administration maison
Sur chaque VM et sur l'hÎte, dans /root/outils se trouvent des scripts qui permettent de :- creer_utilisateur.sh : créer un utilisateur systÚme, son vhost Apache, sa pool PHP-FPM, sa base de données MySQL, sa sauvegarde
- detruire_utilisateur.sh : détruire un utilisateur, toutes ses configs et toutes ses données
- preparer_environnement.sh : préparer l'environnement pour les nouveaux utilisateurs
- paquets_et_modules.sh : installer les paquets de base pour du Web (sommaire, à améliorer)
- execute-moi-ca-partout.sh : un script qui utilise pssh (voir chapitre ci-dessous)
Attention, ces outils ne sont pas [encore] versionnés, pour des raisons de confidentialité (stratégie à valider); pour l'instant il faut donc répercuter les modifications sur l'hÎte et toutes les VMs à chaque fois (utiliser PSCP, voir ci dessous)
Attention 2, ces outils font des trucs dangereux, faire bien attention avant de les lancer !
PSSH
pssh est un programme Python qui fait du SSH / SCP en parallĂšle sur plusieurs machines. C'est pratique depuis Osyris pour exĂ©cuter les mĂȘmes commandes sur toutes les VMs simultanĂ©ment.Installation
Fait sur Osyris le 2016-09-26apt-get install python-pip pip install pssh
Utilisation
Exécution d'une commande :pssh -h outils/vms.list -l root -A -i "commande à lancer sur les VMs"
Copie d'un fichier
pscp -h outils/vms.list -l root -A fichier-a-copier /repertoire/de/destination/
Script de sauvegarde (backup) des Vms
Un script est lancé tous les mois pour effectuer un backup sur des Vms sur grosdur :/etc/cron.monthly/sauvegarde_vms
#!/bin/bash # tous les 16 du mois à 2h du matin, on sauvegarde sur Grosdur (en NFS) les VMs dont les IDs sont listés ci-dessous # - Mathias, 2016-09-15 vzdump 123 124 125 126 420 --node osyris --mode snapshot --quiet 1 --compress lzo --mailnotification always --storage agathis-grosdur --mailto dev-log@tela-botanica.org
Important : lors de la création d'une nouvelle VM, penser à ajouter son ID à ce script
Un backup est effectué chaque 1er jour du mois, et seuls 2 backups sont conservés pour chaque VM.
Outils de surveillance des disques
installation de megacli, on trouve le dépot de paquets là :
http://hwraid.le-vert.net/wiki/DebianPackages
Ajout du dépot et installation de:
megacli megaclisas-status
Pour avoir le statut, lancer :
$ megaclisas-status --nagios
ou
$ megaclisas-status
Ajout d'un cron.hourly qui envoi des mails si megacli rapporte un problĂšme :
/etc/cron.hourly/check_raid
#!/bin/bash STATUS=`megacli -AdpAllInfo -aALL -NoLog|egrep '^ (Degraded|Failed)'|grep -v ' 0'`; DETAILS=``; if [ "x$STATUS" != "x" ]; then DETAILS=`megaclisas-status --nagios`; echo -e "Subject: RAID WARNING @ $HOSTNAME\n\n$STATUS\n\n$DETAILS"|/usr/sbin/sendmail dev-log@tela-botanica.org fi
Full doc : http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS
Puis installation smartmontools avec activation de smartd avec le /etc/smartd.conf :
# - SCAN TOUS LES DISQUES # - LOG LA TEMPĂRATURE (-W) SI ELLE CHANGE DE 4° OU ATTEINT 44° ET +. UN EMAIL EST ENVOYĂ Ă 48° ET +. # - ENVOI UN EMAIL EN CAS DE PROBLĂME # - RĂALISE DES TESTS COURTS (S) TOUS LES MATINS Ă 3H00 ET PAS DE TESTS LONGS (L) DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././03|L/../.././..) -I 194 -W 4,44,48 -m dev-log@tela-botanica.org
Synchronisation de la date (NTP)
Par défaut Proxmox est censé se synchroniser correctement avec les serveurs NTP par défaut de Debian.Oui mais voilà : notre hébergeur SupAgro bouche le port NTP; il faut donc utiliser le serveur NTP de SupAgro : ntp.supagro.inra.fr
Les instructions ci-dessous sont inspirées de cette doc.
Modifier la liste des serveurs NTP
Ăditer /etc/systemd/timesyncd.conf de façon Ă ce qu'il ressemble à ça :# (...) [Time] Servers=ntp.supagro.inra.fr 0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
Relancer le service timesyncd de systemd
systemctl restart systemd-timesyncd.service
S'assurer que le service timesyncd de systemd se lance bien au démarrage
systemctl enable systemd-timesyncd.service
Vérifier que tout va bien
- timedatectl donne des infos sur la synchronisation
- date donne la date et l'heure
- systemctl status systemd-timesyncd.service donne l'état du service et les derniers messages du log
Pont réseau et NAT
Voir sur le wiki FlorisTicSSH et VPN
Voir MemoOpenVPNSupAgro
Configuration du SSL sur les VMs et l'hĂŽte
Installation du certificat
Pour faire marcher Apache avec le certificat SSL de Gandi, voir cette documentation.Configuration des Virtualhosts Apache
Exemple de Virtualhost pour beta.tela-botanica.org (sur Aphyllanthe):
<VirtualHost *:80>
ServerName beta.tela-botanica.org
ServerAdmin webmestre@tela-botanica.org
DocumentRoot /home/beta/www
ErrorLog ${APACHE_LOG_DIR}/error_beta.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /home/beta/www>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler "proxy:unix:///var/run/php/php7.0-fpm_beta.sock|fcgi://beta/"
</FilesMatch>
<Proxy fcgi://beta/>
</Proxy>
</VirtualHost>
<VirtualHost *:443>
ServerName beta.tela-botanica.org
ServerAdmin webmestre@tela-botanica.org
DocumentRoot /home/beta/www
ErrorLog ${APACHE_LOG_DIR}/error_beta.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS
SSLEngine On
SSLCertificateFile [CHEMIN DU FICHIER]
SSLCertificateKeyFile [CHEMIN DU FICHIER]
SSLCertificateChainFile [CHEMIN DU FICHIER]
<Directory /home/beta/www>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler "proxy:unix:///var/run/php/php7.0-fpm_beta.sock|fcgi://beta/"
</FilesMatch>
<Proxy fcgi://beta/>
</Proxy>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
Redirection HTTP vers HTTPS
Les sites en .org devraient ĂȘtre accessibles en HTTPS uniquement. On fait donc une redirection forcĂ©e de HTTP vers HTTPS, de cette façon.Exemple de Virtualhost pour beta.tela-botanica.org :
<VirtualHost *:80>
ServerName beta.tela-botanica.org
Redirect / https://beta.tela-botanica.org/
ErrorLog ${APACHE_LOG_DIR}/proxy-beta_error.log
CustomLog ${APACHE_LOG_DIR}/proxy-beta_access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName beta.tela-botanica.org
SSLEngine On
SSLCertificateFile [CHEMIN DU FICHIER]
SSLCertificateKeyFile [CHEMIN DU FICHIER]
SSLCertificateChainFile [CHEMIN DU FICHIER]
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS
SSLProxyEngine On
ProxyPass "/" "http://192.168.0.124/"
ProxyPreserveHost On
ErrorLog ${APACHE_LOG_DIR}/proxy-beta_error.log
CustomLog ${APACHE_LOG_DIR}/proxy-beta_access.log combined
</VirtualHost>