13.1 Exemple d’installation
TODO: section ancienne datant de 2021, et les explication ne sont plus à jour par rapport à la version actuelle. Conservé pour l’instant à titre d’illustration seulement !
Nous avons opté pour un serveur ayant les caractéristiques suivantes :
CPU Intel Core i7-6900k 3,20GHz à 8 cœurs/16 threads,
64Go de mémoire RAM DDR4 2.666Mhz,
512Go de disque SSD NVMe Samsung Pro 960 + 2 fois 3To de HDD Toshiba P300 7200rpm SATA III,
Xubuntu 18.04.5LTS,
MongoDB 4.4.11, MongoDB Tools 100.5.1,
RStudio Connect 1.8.8.2 + R 4.0.5 (licence 100 utilisateurs),
Accessible par ssh seulement en interne (ou au travers d’un VPN).
Installation de R 3.6.3 (équivalent à “svbox2020” qui est une installation type de R + RStudio + la série de packages R nécessaires pour les exercices du cours) :
sudo apt install curl
export R_VERSION=3.6.3
curl -O https://cdn.rstudio.com/r/ubuntu-1804/pkgs/r-${R_VERSION}_1_amd64.deb
sudo gdebi r-${R_VERSION}_1_amd64.deb
- Installation de R 3.5.3 et 3.4.4, respectivement équivalents à “svbox2019” et “svbox2018” pour pouvoir également exécuter les exercices des années précédentes :
curl -O https://cdn.rstudio.com/r/ubuntu-1804/pkgs/r-3.5.3_1_amd64.deb
sudo gdebi r-3.5.3_1_amd64.deb
curl -O https://cdn.rstudio.com/r/ubuntu-1804/pkgs/r-3.4.4_1_amd64.deb
sudo gdebi r-3.4.4_1_amd64.deb
# Test
/opt/R/${R_VERSION}/bin/R --version
- Configuration de Java pour R :
sudo /opt/R/3.6.3/bin/R CMD javareconf
- Installation de RStudio Connect 1.8.2.1-12 :
cd ~/Downloads
curl -LO https://rstudio-connect.s3.amazonaws.com/rsc-installer.sh
sudo bash ./rsc-installer.sh 1.8.2.1-12
# Clean up
rm rsc-installer.sh
sudo rm rstudio-connect_*.deb
- Installation des dépendances :
sudo apt install build-essential libcurl4-gnutls-dev openjdk-7-* libxml2-dev libssl-dev texlive-full libev-dev
# Pour les packages R
sudo apt install libgmp10-dev libgsl0-dev libnetcdf6 libnetcdf-dev netcdf-bin libdigest-hmac-perl libgmp-dev libgmp3-dev
sudo apt install libgl1-mesa-dev libglu1-mesa-dev libglpk-dev tdsodbc freetds-bin freetds-common freetds-dev
sudo apt install odbc-postgresql libtiff-dev libsndfile1 libsndfile1-dev libtiff-dev tk8.5 tk8.5-dev tcl8.5 tcl8.5-dev libgsl0-dev libv8-dev
- Configuration de RStudio Connect :
sudo nano /etc/rstudio-connect/rstudio-connect.gcfg
# URL temporaire du server... https://rstudio-connect.university.edu
# SenderEmail = user@university.edu
# Port :3939 (valeur par défaut)
- Introduction de la clé d’activation :
sudo /opt/rstudio-connect/bin/license-manager deactivate
sudo /opt/rstudio-connect/bin/license-manager activate xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
- Redémarrage de RStudio Connect :
sudo systemctl restart rstudio-connect
Création du premier compte (admin). Naviguer vers http://rstudio-connect.university.edu:3939. S’enregistrer et créer le nouveau compte. Configuration également de l’envoi de mail (serveur SMTP sur port 587 temporairement si nécessaire).
Installation de Python :
[Python]
Enabled = true
; Python 2.7.12 installed with Ubuntu 16.04
Executable = /usr/bin/python
; Python 3.5.2 installed with Ubuntu 16.04 (and used by svbox2018)
Executable = /usr/bin/python3
- Packages Python supplémentaires (pip et pip3 déjà installés) :
sudo pip install setuptools
sudo pip install virtualenv
sudo pip3 install setuptools
sudo pip3 install virtualenv
- S’il faut une autre version de Python, ici 3.6.7 pour svbox2019, il faut compiler depuis les sources :
# Required dependencies
sudo apt install libffi-dev libgdm-dev libsqlite3-dev libssl-dev zlib1g-dev
# Download and extract source code
cd ~/Downloads
export VERSION=3.6.7 PYTHON_MAJOR=3
wget https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz
tar -xzvf Python-${VERSION}.tgz
cd Python-${VERSION}
# Build Python from source
./configure \
--prefix=/opt/Python/${VERSION} \
--enable-shared \
--enable-ipv6 \
LDFLAGS=-Wl,-rpath=/opt/Python/${VERSION}/lib,--disable-new-dtags \
--enable-optimizations
make
# Install Python
sudo make install
# Clean up
cd ..
sudo rm -rf Python-${VERSION}
rm Python-${VERSION}.tgz
# Check Python install
/opt/Python/${VERSION}/bin/python${PYTHON_MAJOR} --version
# Install pip, setuptools and virtualenv in this Python version
wget https://bootstrap.pypa.io/get-pip.py
sudo /opt/Python/${VERSION}/bin/python${PYTHON_MAJOR} get-pip.py
rm get-pip.py
sudo /opt/Python/${VERSION}/bin/pip install virtualenv
sudo /opt/Python/${VERSION}/bin/pip install setuptools
- Ajouter cette version de Python dans la configuration de RStudio Connect (ajouter
Executable = /opt/Python/3.6.7/bin/python3
dans la section “[Python]”) :
sudo nano /etc/rstudio-connect/rstudio-connect.gcfg
- Redémarrer RStudio Connect :
sudo systemctl restart rstudio-connect
- Installation du certificat SSL. Copie des fichiers vers
/etc/ssl/private
et changement des droits d’accès :
sudo chmod o= /etc/ssl/private/university.cer|crt|csr|key|pfx
- Dans l’exemple d’installation, le fichier
.cer
ne fonctionne pas, mais on peut créer un.pem
à partir du.crt
au format PKCS#7 :
sudo openssl pkcs7 -print_certs -in /etc/ssl/private/sdd_umons_ac_be.crt -out /etc/ssl/private/sdd_umons_ac_be.pem -outform PEM
sudo chmod o-r /etc/ssl/private/sdd_umons_ac_be.pem
- Modification du fichier de configuration de RStudio Connect. Utilisation du port
:443
, le.key
comme clé privée et le.pem
comme certificat, et TSL minimum 1.1 :
sudo nano /etc/rstudio-connect/rstudio-connect.gcfg
- Redémarrage du serveur
sudo systemctl restart rstudio-connect
- Vérification du bon démarrage dans le fichier log
sudo cat /var/log/rstudio-connect.log
- Dans notre exemple, nous choisissons de mettre en place une synchronisation de
/data1
avec/data2
régulièrement :
sudo crontab -e
Édition du fichier en y ajoutant :
# Sync /data1/ with /data2/ every hour:45
45 * * * * /usr/bin/rsync -av --delete /data1/ /data2/ &> /data/datasync.log
- Déplacement des données de RStudio Connect vers
/data1
:
sudo systemctl stop rstudio-connect
sudo mkdir /data1/rstudio-connect
sudo rsync -av --delete /var/lib/rstudio-connect/ /data1/rstudio-connect/
Édition à nouveau le fichier de configuration de RStudio Connect (DataDir = /data1/rstudio-connect) :
sudo nano /etc/rstudio-connect/rstudio-connect.gcfg
Redémarrage de RStudio Connect :
sudo systemctl start rstudio-connect
- Backup du système en utilisant
rear
, voir https://tecmint.com/rear-backup-and-recover-a-linux-system/
sudo apt install rear extlinux
- Formatage d’une clé USB :
sudo rear format /dev/sdX # In case of error rear format -- --efi /dev/sdX (in the server, it is /dev/sdc)
- Changer
/etc/rear/local.conf
et y ajouter ceci :
OUTPUT=USB
BACKUP=NETFS
BACKUP_URL="usb:///dev/disk/by-label/REAR-000"
- Exécuter ceci pour voir la configuration actuelle :
sudo rear dump
- Créer un disque de récupération (unmount REAR-000, puis …)
sudo rear -v mkrescue # Just a rescue disk
sudo rear -v mkbackup # Rescue disk AND backup the system
sudo rear -v mkbackuponly # Only backup the system
- Pour restaurer le système, on boote depuis la clé USB. Lorsque le login est demandé, entrer
root
, puisrear recover
. Redémarrer une fois la restauration terminée. Voir aussi http://relax-and-recover.org/usage/