« Serveur de grille : préparation » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Ligne 49 : Ligne 49 :


===Paquet libdbd-mysql===  
===Paquet libdbd-mysql===  
TODO pour le webmaster de OSWiki: développer la page à partir d'ici.
Nécessaire pour pouvoir utiliser le plugin dbi dans '''Collectd''', outil de surveillance du serveur et de la grille.
Nécessaire pour pouvoir utiliser le plugin dbi dans '''Collectd''', outil de surveillance du serveur et de la grille.
  apt-get install libdbd-mysql
  apt-get install libdbd-mysql

Version du 15 décembre 2017 à 16:41

Le système d'exploitation

Télécharger Ubuntu Desktop 20.04 LTS pour un ordinateur

Choisissez la version qui convient au type de processeur de votre ordinateur.

Télécharger Ubuntu Server 18.04 LTS pour un serveur

Cas d'un serveur dédié

Il n'est pas nécessaire de télécharger l'image CD d'installation d'Ubuntu Server 18.04 LTS, il suffira de choisir la version de ce système d'exploitation au cours de l'installation du serveur.

Télécharger l'image du CD d'installation pour un serveur privé

Si vous disposez d'un serveur privé, téléchargez l'image du CD d'installation qui convient au type de processeur de votre machine.

Installer votre système d'exploitation

Ce wiki n'est pas destiné à expliquer comment installer Ubuntu. Veuillez vous référer à la documentation de la distribution :

Diverses installations

Après avoir installé votre serveur, tapez les commandes suivantes dans un terminal :

sudo apt update
sudo apt upgrade
sudo apt-get autoremove

Configuration de la langue

  • Installer la langue française (facultatif):
sudo apt-get install language-pack-fr
  • Éditer le fichier /ect/default/local
sudo nano /ect/default/local
  • Remplacer la première ligne :
LANG="fr_FR.UTF-8"

Installation du serveur MySQL

MySQL est un Système de Gestion de Base de Données (SGBD) utilisé par OpenSimulator. Il n'est pas possible d'utiliser SQLite pour une grille OpenSimulator. SQLite est le SGBD par défaut des simulateurs OpenSim.

Nous allons voir comment installer MySQL, déplacer son dossier et protéger les mots de passe des bases de données.

Installation du paquet MySQL

Dans le terminal du serveur de grille taper la commande (vous devez avoir les droits d'administration de votre machine) :

sudo apt-get install mysql-server 

Un mot de passe vous sera demandé pour le serveur de bases de données. Reportez ce mot de passe dans le tableau des mots de passe.

Vous pouvez créer ce tableau pour l'ensemble des mots de passe de votre installation. Il ne doit pas être publié sur internet.

Déplacement du dossier MySQL

But : utiliser l'espace disque de Robust pour préserver l'espace disque du système.

Attention, suivez bien les indications données ci-dessous pour ne pas casser votre installation. Cette opération est faculative.

Normalement les bases de données sont dans /var/lib/mysql/.

Arrêter le serveur MySQL
sudo service mysql stop
Créer une copie du dossier

mysql avec les mêmes droits

sudo cp -aR /var/lib/mysql  /var/lib/mysql_old
Déplacer le dossier mysql dans /home/
sudo mv /var/lib/mysql /home/Robust
Faire un lien symbolique

avec le dossier /var/lib/

sudo ln -s /home/Robust/mysql /var/lib/mysql
Donner les droits au dossier mysql
sudo chown -h mysql:mysql /home/Robust/mysql
Éditer le fichier

/etc/apparmor.d/usr.sbin.mysqld

sudo nano /etc/apparmor.d/usr.sbin.mysqld
Remplacer
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

par

/home/Robust/mysql/ r,
/home/Robust/mysql/** rwk,
Recharger appamor
sudo service apparmor reload
Relancer le serveur MySQL
sudo service mysql start

Création de la base de données

  • Se connecter à MySQL depuis un terminal en mode administrateur.
mysql -u <utilisateur> -p 

Il n'est plus nécessaire de renseigner le mot de passe mais il faut par contre lancer la commande mysql avec l'utilisateur correspondant.

  • Depuis l'invite MySQL, créer une base de données.
CREATE DATABASE <Nom de la bdd de la grille>;
  • Créer un utilisateur pour la base de données :
CREATE USER "<Nom de l'utilisateur de la bdd de la grille>"@"localhost";
  • Créer le mot de passe de l'utilisateur.
SET password FOR "<Nom de l'utilisateur de la bdd de la grille>"@"localhost" = password('<mot de passe>');

ou pour MySQL 8.0 ou supérieur :

SET password FOR "<Nom de l'utilisateur de la bdd de la grille>"@"localhost" = '<mot de passe>';
  • Donner tous les droits sur la base de données à l'utilisateur :
GRANT ALL ON <nom_bdd>.* TO "<Nom de l'utilisateur de la bdd de la grille>"@"localhost";
  • Quitter MySQL
quit

Autre solution

Vous pouvez utiliser Phpmyadmin, interface graphique de connexion à Mysql. Mais cette solution est moins sécurisée.

Pour aller plus loin

Commandes Mysql utiles

Protection des mots de passes

Rôle Permettre la connexion directe des scripts bash à une base de donnée sans afficher le mot de passe en clair.

Dans ce cas le mot de passe fait partie des options et ne doit pas être appelé dans les scripts. On peut

choisir un utilisateur et mot de passe identiques pour tous les bdd des simulateurs pour ne pas utiliser root.

Installation Ajouter le fichier .my.cnf dans Robust.
cd /Robust
nano .my.cnf
Contenu
<source lang="vim">
[client] 
host  = localhost 
user = <user>
password = *********** 
socket   = /var/run/mysqld/mysqld.sock 
</source>
<user>

Utilisateur qui a le droit de se connecter à la base de données

password Mot de passe de l'utilisateur de la base de données
Droits sur le fichier chmod 600 Robust/.my.cnf
Mot de passe voir le tableau des mots de passe.

Configurations particulières de MySQL

Connexion à une base de données distante

But : communiquer avec votre base de données depuis un serveur distant, c'est à dire depuis une machine autre que celle où est installée le serveur de base de données. Cette configuration est facultative, ne modifiez rien si vous n'en n'avez pas l'utilité.

  • Installation :

Dans le fichier /etc/mysql/my.cnf remplacer bind-address 127.0.0.1 par bind-address 0.0.0.0

  • Redémarrer le service :
service mysql restart

Quelques commandes de gestion de Mysql

Page des commandes utiles

Liste des bases de données du serveur de grille

Nom Description Utilisateurs particuliers et droits
<Nom de la bdd de la grille> Base de données de la grille.

GRANT ALL PRIVILEGES ON `<Nom de la bdd de la grille> `.* TO '<Nom de l'utilisateur de la bdd de la grille>'@'localhost'

GRANT SELECT ON *.* TO 'collectd'@'localhost'

Installation de Mono

OpenSimulator est développé en C# (C Sharp). Le C# est un langage de programmation orienté objet, commercialisé par Microsoft depuis 2002 et destiné au développement sur la plateforme Microsoft .NET.

Mono est une mise en œuvre open source de la plateforme de développement Microsoft .NET. Mono peut être utilisé sous GNU/Linux, Microsoft ou MacOS.

Installation de Mono sur Ubuntu

Dans un terminal tapez la commande :

sudo apt-get install mono-complete

Version

Toutes les versions de Mono ne sont pas adaptées à OpenSimulator. Lancez la commande ci-dessous dans un terminal pour connaître la version par défaut de Mono installée sur votre machine.

 apt-cache show mono-complete

Versions installées sur Ubuntu Server 18.04 LTS:

  • Mono : 3.2.8+dfsg-4ubuntu1.1
  • libgdiplus : 2.11+git20131008.9732566-5ubuntu1

Vous trouverez un tableau des versions et status de Mono sur le wiki OpenSimulator : http://opensimulator.org/wiki/Mono_2_4_on_Ubuntu

Configuration de Mono

Dans /home/Robust/.bashrc ajouter les lignes suivantes en bas du fichier (facultatif):

export EDITOR=nano 
export MONO_GC_PARAMS=nursery-size=64m 
export MONO_THREADS_PER_CPU=125

Compiler une autre version que celle du système

Cette section n'est utile que si vous rencontrez des problèmes pour faire fonctionner une grille OpenSimulator sur votre machine (lancement de la grille, affichage de texture, lancement des scripts, bugs divers ).

Pour compiler une nouvelle version de Mono, vous aurez besoin d'installer quelques outils (de paquets) sur votre serveur. Procédez ainsi :

La version du paquet libtool-bin doit être 15.10 et supérieure.

 $ sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext cmake libtool-bin

http://www.mono-project.com/docs/compiling-mono/linux/

Sources : http://download.mono-project.com/sources/mono/

Listes des releases : http://www.mono-project.com/docs/about-mono/releases/

Désinstaller

  • désinstaller si l'installation a été faite à partir du paquet
sudo apt-get purge mono-runtime  
sudo apt-get purge mono-complete  
sudo apt-get purge libmono* libgdiplus cli-common libglitz-glx1 libglitz1
  • désinstaller si l'installation a été faite à partir d'une version compilée
make uninstall

Alternative à Mono

https://www.microsoft.com/net/

Voir la page http://opensimulator.org/wiki/Configuration/fr

Noyau Linux

Si une version du noyau pose des problèmes pour lancer une grille et des simulateurs avec Mono il faut installer une autre version.

Sources.

L'installation d'une autre version du noyau est nécessaire :

apt-get install linux-image-<version>-generic

Autres installations

Screen

Screen est une console virtuelle qui permet de partager un terminal en plusieurs processus. C’est un logiciel libre distribué par le projet GNU selon les termes de la licence GPL.

Si vous utilisez un serveur distant, vous devrez y accéder via un terminal que vous fermez pour vous déconnecterez. Ainsi, vous ne pouvez pas vous déconnecter après avoir lancé votre grille OpenSimulator, ou alors, il faut fermer la grille.

Screen va vous permettre de créer une console virtuelle dans laquelle vous pourrez lancer votre grille. À chaque console virtuelle créée correspond un processus qui continue de tourner sur votre serveur même si vous fermez votre terminal pour vous déconnecter.

Pour installer screen, tapez la commande suivante dans le terminal du serveur :

sudo apt-get install screen

Notez que si vous lancez votre grille sur une machine locale, il ne sera pas nécessaire d'utiliser screen, mais ce n'est pas non plus interdit.

Alternative : Tmux, distribué sous licence BSD.

Paquet libdbd-mysql

TODO pour le webmaster de OSWiki: développer la page à partir d'ici.

Nécessaire pour pouvoir utiliser le plugin dbi dans Collectd, outil de surveillance du serveur et de la grille.

apt-get install libdbd-mysql

Configuration

Utilisateur système

Administrateur de grille

Rôle

Utilisateur avec droits particuliers sur l'installation de la grille OpenSim.

Droits d'administration de Robust.

Créer l'utilisateur son dossier et son groupe

sudo adduser –home Robust Robust

Groupes de l'utilisateur

  • Attribuer un groupe à l'utilisateur :
 sudo adduser Robust Robust

Droits sur les dossiers

chown -R Robust:Robust /home/Robust/

Administrateur des sauvegardes locales

Rôle

{{{{{type2}}}_role}}

Créer l'utilisateur, son dossier et son groupe

sudo adduser –home Sauvegarde {{{{{type2}}}_user}}

Groupes de l'utilisateur

  • Attribuer un groupe à l'utilisateur :
 sudo adduser {{{{{type2}}}_user}} {{{{{type2}}}_user}}

Droits sur les dossiers

chown -R {{{{{type2}}}_user}}:{{{{{type2}}}_user}} /home/{{{{{type2}}}_user}}/

Ports ouverts sur un serveur de grille

Description Port
Port SSH

IMPORTANT :

Doit être ouvert avant d'activer la pare-feu.

22
Port public du serveur Robust 8002 TCP/UDP
Port privé du serveur Robust 8003 TCP/UDP
Serveur MySQL 3306
Serveur Collectd 3306 (MySQL)
Configuration de ssmtp pour gmail 465

Réglage du Swap

  • Objectif  : Régler le déclenchement du swap du serveur pour que la grille utilise mieux la RAM.
  • Commandes :
cat /proc/sys/vm/swappiness 
sudo sysctl vm.swappiness=20

Désactiver :

sudo swapoff -av 

Réactiver :

sudo swapon -av

Modification permanente :

echo vm.swappiness=20 | sudo tee -a /etc/sysctl.conf

Pour plus d'informations au sujet du zwap et de sa configuration :

https://www.it-connect.fr/augmenter-lespace-dechange-swap-avec-un-fichier-sous-linux%ef%bb%bf/

Serveur Ssh et clé asymétrique