Traductions de cette page:

Cloud pédagogique et cloud recherche

  • Le service de cloud pédagogique est en production sur leria-etud.univ-angers.fr pour les étudiants de LP, L3, M1 et M2.
  • Vous pouvez y accéder avec votre login et mot de passe ENT en ssh sur le port 2019.
  • Pour le cloud recherche, veuillez contacter l'équipe technique.
  • Vous devez utiliser une authentification par clé ssh, faute de quoi, en cas de multiple saisie de mot de passe et/ou de login, vous seriez banni automatiquement et vous perdriez alors l'accès à ce service. Vous ne souhaitez certainement pas que cela vous arrive pendant un examen …
  • Nous ne garantissons pas la pérennité de vos données. Vous devez faire vous même vos sauvegardes. En cas de nécessité, nous nous réservons le droit de supprimer vos VPS sans votre accord préalable.
  • Les homes et les VPS des étudiants non réinscrit administrativement (anciens étudiants par exemple) sont systématiquements supprimés sans accord préalable.
  • Ce service est partagé, merci de penser aux autres utilisateurs (ne pas laisser des commandes en tâche de fond qui gaspilleraient inutilement les ressources par exemple)

Vous pouvez contacter l'équipe technique par mail ou venir directement au bureau H105 pour tous renseignements complémentaires.

Service de serveurs privés virtuels (Virtual Private Server (VPS))

IL EST STRICTEMENT INTERDIT:
  • D’INSTALLER UN SERVEUR DNS ET/OU UN SERVEUR DHCP (les ports 53, 67 et 68 sont et DOIVENT rester fermés)
  • DE MODIFIER L’ADRESSE IP DU VPS
  • DE SUPPRIMER NOTRE CLÉ PUBLIQUE DANS LE FICHIER /root/.ssh/autorized_keys

TOUT MANQUEMENT A CES RÈGLES ENTRAÎNERA AUTOMATIQUEMENT:

  • L'ARRET DE VOTRE VPS ET POTENTIELLEMENT SON BLOCAGE
  • UN SIGNALEMENT A LA DIRECTION DU DÉPARTEMENT INFORMATIQUE ET POTENTIELLEMENT UN BANNISSEMENT DU SERVICE
  • Nous avons un accès root à vos VPS par plusieurs mécanismes, vous n'êtes donc pas le seul administrateur de la machine.
  • Nous nous réservons le droit d'utiliser des outils de monitoring sur votre VPS.
  • Toutes utilisations abusives et/ou frauduleuses seront automatiquement transmises au directeur du département informatique.
  • Nous nous réservons le droit d'arrêter et de bloquer l'accès à votre VPS.
  • Nous ne garantissons pas la pérennité de vos données: VOUS DEVEZ FAIRE DES SAUVEGARDES DE VOS DONNÉES.
  • La gestion de vos certificats tls est automatique, vos éventuels serveurs web doivent écouter sur le port 80.
    • Cela signifie que tous les flux entre votre serveur web et notre reverse proxy ne sont pas chiffrés.
    • Aussi toutes les requêtes en http effectuées en dehors du réseau local sont automatiquement redirigé par notre reverse proxy en https.
  • Nous effectuons des statistiques sur le type (create,start,…) et le nombre d'action effectuées sur les VPS. Ces statistiques sont anonymisées.
    • Toutefois, elles peuvent nous donner des indications sur les usages par filières (L3,M1,M2)
Comment choisir son type de VPS ?
  • Les conteneurs LXC :
    • sont plus légers et moins énergivore que les machine virtuelles qemu/kvm
    • dépendent du noyau linux de leurs hôtes, de fait, certaines applications peuvent ne pas fonctionner dans un conteneur LXC, mais c'est très rare: il s'agit d'applications très spécifiques
    • ne sont pas capables (dans la configuration proposée) de faire fonctionner des conteneurs docker ou des machines virtuelles
  • Les machines virtuelles qemu/kvm:
    • sont capables de réaliser exactement la même chose que n'importe quelle machine physique
    • sont plus énergivores et consomment plus de ressources que les conteneurs LXC
    • sont capables de faire fonctionner des conteneurs docker ou des conteneur LXC

Tous les usagers disposent en permanence de 1 VPS de chaque type (lxc et kvm). Ceux-ci sont créé et snapshoté automatiquement la nuit dans le but d'éviter des ralentissements lors de la création/supression simultané de plusieurs VPS.

Vous êtes bien entendu libre de tester les 2 types de VPS et de choisir celui que vous préférez, voir même d'utiliser les 2 types de VPS en même temps, mais gardez bien à l'esprit que vos choix ont des impacts en terme de ressource et de consommation d’énergie. Pour cette raison, les VPS sont automatiquement arrêté environ 1 heure après la dernière connexion ssh. Si vous souhaitez que votre VPS fonctionne en permanence, c'est possible, mais il faut motiver votre demande auprès de votre responsable de filière et de l'équipe technique.

Préambule

  • Vous ne devez pas créer d'autres fichiers commençant par “lxc” ou “kvm” à la racine de votre home. Ils pourraient être automatiquement supprimées.
  • Chaque action entraine l'envoie d'un email

Première création

La méthode simple

Vous disposer d'alias pour gérer les actions sur vos vps. Les alias sont de type _vps_{kvm,lxc}_{action}. Pensez à utiliser la touche tabulation TAB de votre clavier pour profiter de l'autocomplétion. Voici la liste des alias:

  • _vps_kvm_connect
  • _vps_kvm_create
  • _vps_kvm_delete
  • _vps_kvm_key
  • _vps_kvm_revert
  • _vps_kvm_snapshot
  • _vps_kvm_start
  • _vps_kvm_status
  • _vps_kvm_stop
  • _vps_lxc_connect
  • _vps_lxc_create
  • _vps_lxc_delete
  • _vps_lxc_key
  • _vps_lxc_revert
  • _vps_lxc_snapshot
  • _vps_lxc_start
  • _vps_lxc_status
  • _vps_lxc_stop

Comme vos VPS ont déjà été créés, vous pouvez démarrer votre VPS avec l'alias:

_vps_kvm_start

et une fois que le prompt revient, vous pouvez vous connecter à votre VPS avec l'alias:

_vps_kvm_connect

Il vous faut accepter la signature du serveur, et vous serez logué en tant qu'utilisateur root dans le VPS.

En cas de problème (configuration du VPS altéré, mauvaise manipultation, …), vous pouvez revenir à l'état initial de votre VPS avec l'alias:

_vps_kvm_revert

Et ensuite,

_vps_kvm_start

En cas de doute sur l'état de votre VPS (Allumé, éteint), vous pouvez utiliser l'alias:

_vps_kvm_status

La méthode plus compliqué mais ou comprend ce qui est fait

Pour créer votre vps, il suffit de créer le fichier “{kvm,lxc}.create” à la racine de votre home sur star{gate,wars,wars-dev}:

cd
touch lxc.create # ou bien touch kvm.create si besoin de vps de type kvm
watch ls lxc.* # La commande watch va rejouer la commande ls toutes les 2 secondes. Ctrl + C pour quitter
  • Votre fichier sera automatiquement renommé en {kvm,lxc}.create.in_progress puis en {kvm,lxc}.running.
  • La création de votre VPS peut prendre plusieurs minutes en fonctions de l'affluence de demande de création.
    • Au delà de 10 minutes d'attente, si rien ne s'est passé, supprimez le fichier lxc.create et recommencez l'opération.
      • Si cela ne fonctionne toujours pas, contactez l'équipe technique.
  • Un mail vous sera envoyé une fois que l'action de création sera terminé.

Une fois que votre fichier a été renommé lxc.running, faites la commande suivante

mv lxc.running lxc.snapshot
watch ls lxc.* # Attendez que le fichier soit de nouveau automatiquement renommé lxc.running

Les instructions de connexions à votre vps seront inscrites à la fin de votre fichier {kvm,lxc}.running.

cat $HOME/{kvm,lxc}.running

Vous devez lire le contenu du fichier {kvm,lxc}.running car vous y trouverez également quelques informations supplémentaire sur les conditions d'utilisation de votre vps.

Pour aller plus loin

ATTENTION AUX COPIERS/COLLERS DEPUIS LA DOCUMENTATION


Votre VPS peut-être de type kvm et/ou lxc. La notation {kvm,lxc} signifie que vous devez spécifier:

  • soit lxc pour un VPS de type lxc (linux container)
  • soit kvm pour un VPS de type kvm (kernel virtual machine)

Par exemple, si vous voyez dans la documentation:

touch $HOME/{kvm,lxc}.create

Cela signifie que vous devez faire:

soit

touch $HOME/kvm.create

soit

touch $HOME/lxc.create

</note>

Ci-dessous, voici un exemple de contenu de fichier {kvm,lxc}.running :

Vous avez fait 10 actions / 30 actions par jour autorisées.
###################################
# Sécurité et usages des données: #
###################################
# IL EST STRICTEMENT INTERDIT:
# - D’INSTALLER UN SERVEUR DNS ET/OU UN SERVEUR DHCP (les ports 53, 67 et 68 sont et DOIVENT rester fermés)
# - DE MODIFIER L’ADRESSE IP DU VPS
# - DE SUPPRIMER NOTRE CLE PUBLIQUE DANS LE FICHIER /root/.ssh/autorized_keys

# TOUT MANQUEMENT A CES REGLES ENTRAINERA AUTOMATIQUEMENT:
# - L'ARRET DE VOTRE VPS ET POTENTIELLEMENT SON BLOCAGE
# - UN SIGNALEMENT A LA DIRECTION DU DEPARTEMENT INFORMATIQUE ET POTENTIELLEMENT UN BANNISSEMENT DU SERVICE

# Nous avons un accès root à vos VPS par plusieurs mécanismes, vous n'êtes donc pas le seul administrateur de la machine.
# Nous nous réservons le droit d'utiliser des outils de monitoring sur votre VPS.
# Toutes utilisations abusives et/ou frauduleuses seront automatiquement transmises au directeur du département informatique.
# Nous nous réservons le droit d'arrêter et de bloquer l'accès à votre VPS.
# Nous ne garantissons pas la pérennité de vos données: VOUS DEVEZ FAIRE DES SAUVEGARDES DE VOS DONNÉES.
#
# La gestion de vos certificats tls est automatique, vos éventuels serveurs web doivent écouter sur le port 80.
# Cela signifie que tous les flux entre votre serveur web et notre reverse proxy ne sont pas chiffrés. 
# Aussi toutes les requêtes en http effectuées en dehors du réseau local sont automatiquement redirigé par notre reverse proxy en https.
#
# Toutes vos actions sont journalisées et enregistrées pendant une durée maximum de 1 an conformément à la RGPD (https://fr.wikipedia.org/wiki/R%C3%A8glement_g%C3%A9n%C3%A9ral_sur_la_protection_des_donn%C3%A9es).
# 
# Nous effectuons des statistiques sur le type (create,start,...) et le nombre d'action effectuées sur les VPS. Ces statistiques sont anonymisées. 
# Toutefois, elles peuvent nous donner des indications sur les usages par filières (L3,M1,M2)
#
##############################
# Conditions d'utilisations: #
##############################
#
# Votre VPS sera automatiquement arrêté environ 30 minutes après l'arrêt de votre dernière connexion ssh.
# Si vous souhaitez que votre VPS soit actif en permanence, veuillez contacter l'équipe technique (technique-info [at] listes.univ-angers.fr) ainsi que votre responsable de filière en copie en motivant votre demande. 
#
# Il ne sert à rien de modifier le contenu de ce fichier. Si vous avez malencontreusement modifié le contenu de ce fichier, ou si vous l'avez supprimé, vous pouvez réinitialiser son contenu en créant un fichier {kvm,lxc}.status. (i.e.: La suppression d'un fichier {kvm,lxc}.* n'entraîne pas la suppression de votre VPS).
# Vous trouverez ci-dessous des informations concernant l'utilisation de votre VPS.
#
# Vous ne pouvez pas faire plus de 30 actions par jour et par VPS, le nombre d'action que vous avez déjà effectuées dans la journée pour ce type de VPS est inscrit en première ligne de ce fichier.
# Vous ne devez pas faire plus d'une action à la fois, les actions supplémentaires ne seraient pas réalisées et vous auriez tout de même une action de comptabilisée.
# 
# Les demandes de créations et de suppressions des VPS sont traités séquentiellement pour tous les utilisateurs et peuvent prendre plusieurs minutes.
# En cas de forte affluence, il se peut que votre demande n'ait pas été réalisé en moins de 7 minutes, vous devrez alors refaire votre demande.
# Toutes les autres actions sont traitées en parallèle, elles prennent environ entre 15 et 75 secondes en fonction de la demande et de l'affluence.
# 
# Toutes demandes traitées entraineront l'envoi d'un email, même en cas d'échec. Si vous ne recevez pas d'email en moins de 7 minutes, veuillez renouveller votre demande (suppression et recréation du fichier).
# A l'issue de 3 demandes renouvellées non traitées, veuillez contacter l'équipe technique: technique-info [at] listes.univ-angers.fr
#
############
# Actions: #
############
#
# Pour agir sur votre VPS, vous devez renommer votre fichier de la façon suivante (toute autre dénomination n'aura aucun effet sur votre vps):
#
# "{kvm,lxc}.create"     --> Votre VPS sera créé et démarré et votre fichier sera temporairement renommé "{kvm,lxc}.create.in_progress" et “{kvm,lxc}.running”
# "{kvm,lxc}.delete"    --> Votre VPS sera supprimé, cette action est irréversible et votre fichier sera temporairement renommé "{kvm,lxc}.delete.in_progress" et “{kvm,lxc}.deleted”
# "{kvm,lxc}.start"     --> Votre VPS sera démarré et votre fichier sera temporairement renommé "{kvm,lxc}.start.in_progress" et “{kvm,lxc}.running”
# "{kvm,lxc}.stop"    --> Votre VPS sera arrêté et votre fichier sera temporairement renommé "{kvm,lxc}.stop.in_progress" et “{kvm,lxc}.stopped”
# "{kvm,lxc}.snapshot"  --> Votre VPS sera snapshoté( MAX 1 snapshot par VPS ) et votre fichier sera temporairement renommé "{kvm,lxc}.snapshot.in_progress" avant de revenir à l'état précédent. TOUT SNAPSHOT SUPPLÉMENTAIRE SUPPRIMERA LE PRÉCÉDENT.
# "{kvm,lxc}.revert"    --> Votre VPS reviendra à l'état dans lequel il était lorsque vous avez fait votre snapshot (si vous en aviez fait un), toute modification depuis votre snapshot sera irréversiblement perdue. Votre fichier sera temporairement renommé “{kvm,lxc}.revert.in_progress” et “{kvm,lxc}.stopped”. Vous devrez démarrer votre VPS en renommant votre fichier en {kvm,lxc}.start
# "{kvm,lxc}.status"    --> Votre fichier sera renommé dans l'état dans lequel est votre VPS (running, stopped, ou deleted). Utile en cas de suppression accidentelle de fichier {kvm,lxc}.*
# "{kvm,lxc}.key"   --> Redéploiement de votre clé publique ssh. Utile en cas de suppression accidentelle de votre clé publique ssh dans /root/.ssh.autorized_keys .Votre fichier sera temporairement renommé "{kvm,lxc}.key.in_progress" avant de revenir à l'état précédent
#
# Si votre fichier est automatiquement renommé:
# "{kvm,lxc}.{create,delete,start,stop,snapshot,revert,status,key}.in_progress" --> Patientez jusqu'à ce qu’ il soit renommé "{kvm,lxc}.running", "{kvm,lxc}.stopped", "{kvm,lxc}.failed" ou"{kvm,lxc}.deleted"
#
# "{kvm,lxc}.failed"    --> Mauvaise nouvelle:
#     --> D'abord, vous devez réessayer au moins une fois votre action en renommant "{kvm,lxc}.fail" en  "{kvm,lxc}.start" ou "{kvm,lxc}.stop"
#     → Vous pouvez regarder si il y a des informations concernant la cause de l’échec dans le fichier {kvm,lxc}.*
#     --> Si cela ne change rien, vous devez contacter un administrateur système (Bureau H101 ou H105 et/ou mail à technique.info at listes.univ-angers.fr)
#
# ATTENTION: Si votre fichier est nommé {kvm,lxc}.running MAIS que votre vps est injoignable, COMMENCEZ par renommer votre fichier {kvm,lxc}.running en {kvm,lxc}.status
#
########################################################
# Déploiement de configuration:   PAS ENCORE DISPONIBLE          # 
########################################################
#
# Voici la liste des déploiements qui sont disponibles. Pour chaque déploiement, vous devez renommer le fichier {kvm,lxc}.started en {kvm,lxc}.nom_deploiement.
# Celui-ci sera automatiquement renommé en {kvm,lxc}.nom_deploiement.in_progress le temps du déploiement, et enfin en {kvm,lxc}.started.
# Notez bien que le serveur doit être en état started ({kvm,lxc}.started) avant de faire un déploiement. Le cas échéant, le VPS ne sera pas déployé. 
#
# install_docker
# install_and_configure_lamp
# ...
#
######################
# Connexions au VPS: #
######################
#
# Si votre login ENT est constitué de un ou plusieurs caractère points '.' , ceux- doivent être remplacés par des caractères tiret (du 6) '-'. 
# i.e.: login.ENT devient login-ENT
#
# ssh root@{ec,etud,dev}-{kvm,lxc}-login-ENT
# https://{ec,etud,dev}-{kvm,lxc}-login-ENT.leria{,-etud,-dev}.univ-angers.fr
#
# Vous trouverez vos adresses de connexions exactes ci dessous:
ssh root@kvm-etud-fake-name
https://kvm-etud-fake-name.leria-etud.univ-angers.fr

Limitations

Quota

  • En utilisation d'espace disque: 2GB soft limit et 3GB hard limit: en cas de dépassement de quota de 2 GB, vous avez 7 jours pour repasser en dessous du quota (vous serez prévenu par le système). Passez ce délai, ou passé le quota de 3GB, vous ne pourrez plus écrire de données.
  • En nombre d'inode: 100000 soft limit et 200000 hard limit: en cas de dépassement de quota de 100000 inode, vous avez 7 jours pour repasser en dessous du quota (vous serez prévenu par le système). Passez ce délai, ou passé le quota de 200000 inodes, vous ne pourrez plus créer de fichiers.

Pour savoir ou vous en êtes:

du -sh ~ # Vous permet d'obtenir l'espace disque que vous utilisez
du -s --inodes ~ # Vous permet de savoir combien d'inodes vous utilisez

Bonnes pratiques

Pour rappel, tous les VPS créé automatiquement à partir du 1er octobre 2020 sont aussi automatiquement snapshoté. Dans le cas d'une volonté de suppression de VPS, merci donc de considéré l'utilisation d'une action revert plutôt que delete. L'action sera plus rapide et moins contraignante pour vous. Cela n'est évidemment pas vrai dans le cas ou vous auriez fait d'autres snapshot entre temps.

Pour ne pas avoir à attendre trop longtemps lors de la suppression/création de VPS

  • Lorsque vous créez votre VPS, le premier réflexe à avoir est de faire un snapshot:
mv kvm.running kvm.snapshot

de cette manière, en cas de volonté de suppression du VPS, vous pouvez alors faire:

mv kvm.running kvm.revert

plutôt que kvm.delete. Vous récupérerez alors bien plus vite un VPS comme si il était nouvellement créé. Toutefois, pensez à faire un:

apt-get update && apt-get dist-upgrade

pour obtenir les éventuelles mises à jour.

Après l'action revert, le VPS sera éteinr, il faudra alors le redémarré:

mv kvm.stopped kvm.start

Serveur web apache, php et potentiellement mariadb/postgresql/... (cloud pédagogique uniquement)

Pour publier des pages web sans avoir à créer de conteneur, il vous suffit de créer un répertoire public_html à la racine de votre home et d'y placer vos pages web:

loginEnt@starwars:/home$ tree
.
└── loginEnt
    └── public_html
        ├── index.html
        └── script.php

Vous pourrez alors accéder à vos pages web en allant à l'adresse https://leria-dev.univ-angers.fr/~loginEnt/index.html

Si vous souhaitez des fonctionnalitées de debug, test, etc, vous devez utiliser des VPS. Si vous avez besoin d'une base de donnée, vous pouvez:

  • utiliser sqlite en local
  • installer une base de donnée dans un VPS de type KVM
    • Attention de configurer correctement votre base (pour mariadb, lancez l'exécutable mysql_secure_installation après l'installation)
    • Pensez à exposer votre BDD à l'extérieur (pour mariadb, modifiez la ligne bind-address dans le fichier /etc/mysql/mariadb.conf.d/50-server.cnf en mettant l'@IP de votre serveur, noubliez de pas de relancer le serveur mariadb ensuite )
Aucun accès en http n'est autorisé sur le réseau depuis l'extérieur, il y a une réécriture automatique du http en https, cela peut parfois créer des problèmes avec des applications qui indique des liens css en http (par exemple wordpress). Il vous appartient de configurer vos applications pour qu'elles n'utilisent que du https

Création de projet: proposition de méthode de travail

Si vous êtes amené à utiliser les VPS pour créer de véritables projets, nous vous invitons à avoir une approche de “devops” et d'utiliser des outils de déploiements automatiques.

Nous vous conseillons ansible et nous vous conseillons de respecter les bonnes pratiques de cet outil:

En utilisant Ansible en respectant les bonnes pratiques:

  • vous serez capable de déployer autant de fois que vous le souhaitez vos applications
  • vous pourrez facilement versionner et sauvegarder les “recettes” permettant de déployer vos applications
  • vous pourrez partager facilement vos “recettes”
  • si vos projets ont vocation à être hébergés de manière officielle au département informatique/Leria, ceux-ci devraient pouvoir être déployés facilement dans notre infrastructure.

Également et en complément d'Ansible, vous pourriez être intéressé par l'utilisation de docker via docker-compose:

Utilisation d'ansible avec les VPS

Arborescence

Afin de respectez les bonnes pratiques d'ansible, vous devez avoir une arborescence de cette forme https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory-layout[là dans un répertoire /home/loginEnt/ansible. Dans un premier temps, vous pouvez faire abstraction des fichiers d'inventaires “production” et “staging” et utiliser un fichier d'inventaire unique “hosts.yml” à la place.

Inventaire

Lorque vous allez utiliser ansible, il faudra spécifier le chemin de votre fichier d'inventaire:

logintEnt@starwars:~/ansible$ ansible -i hosts.yml -m ping all
A noter que le module ping de ansible ne fait pas un ping au sens réseau du terme (protocole icmp) mais vérifie si il est possible de joindre la cible via une connexion ssh

Il est tout à fait possible (voir souhaitable) de spécifier dans votre fichier d'inventaire hosts.yml les variables permettant la connexion à vos VPS:

  • voici un exemple sans notions de groupe:
all:
  vars:
    ansible_user: root
  hosts:
    dev-kvm-login-ent:
    dev-lxc-login-ent:
  • voici un exemple avec un groupe “vps”:
all:
  children:
    vps:
      vars:
        ansible_user: root
      hosts:
        dev-kvm-login-ent:
        dev-lxc-login-ent:
leria/cloud.txt · Dernière modification: 08/10/2020 12:07 par Chantrein Jean-Mathieu
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0