SWS The Shifters 3 colors.png
Le Site Web des Shifters est désormais en ligne.
Retrouvez le sur www.theshifters.org

Différences entre versions de « Plateforme pédagogique »

De The Shifters Wiki
Sauter à la navigation Sauter à la recherche
imported>Vayel
imported>Vayel
Ligne 453 : Ligne 453 :
 
"Auto-enregistrement" = "Auto-enregistrement par courriel"
 
"Auto-enregistrement" = "Auto-enregistrement par courriel"
  
"Permettre la connexion au moyen de l'adresse de courriel" = "oui" (case cochée)
+
"Permettre la connexion au moyen de l'adresse de courriel" = "Oui" (case cochée)
 
| S'inscrire à la plateforme sans demander l'autorisation
 
| S'inscrire à la plateforme sans demander l'autorisation
 
| Vincent
 
| Vincent
 
| 13/08/19
 
| 13/08/19
 
|-
 
|-
|
+
| /admin/settings.php?section=enrolsettingsself
|
+
| "Autoriser les méthodes d'auto-inscription existantes" = "Oui"
 
| Participer à un cours sans demander l'autorisation
 
| Participer à un cours sans demander l'autorisation
|
+
| Vincent
|
+
| 13/08/19
 
|-
 
|-
|
+
| /admin/settings.php?section=enrolsettingsguest
|
+
| "Permettre l'accès anonyme" = "Oui"
| Lire les cours sans être connecté
+
| Lire les cours en tant qu'invité
|
+
| Vincent
|
+
| 13/08/19
 +
|-
 +
| /admin/settings.php?section=userpolicies
 +
| "Connecter automatiquement les visiteurs anonymes" = "Oui"
 +
| Donner le rôle d'invité aux visiteurs non connectés
 +
| Vincent
 +
| 13/08/19
 
|-
 
|-
 
|
 
|

Version du 13 août 2019 à 15:45


Mission
Dates
Créée Achevée
21/06/2019
Contacts
The Shift Project Shifters
Clémence V. Vincent Lefoulon
Contributeurs
27
Documents
Cahier des charges

Description de la mission

Structurer une communauté d’enseignants, via un espace de travail (Slack ou autre, à réfléchir) permettant à ces personnes d’échanger entre elles au sujet de l'enseignement des enjeux climatiques.

Les besoins sont décrits dans le cahier des charges.

A ce propos, « il s’agit là d’un projet très élaboré et ambitieux, qui nécessite de lourds moyens (évalués par un professionnel à 70000€ d’expertise), et dont nous souhaiterions voir le Ministère s’emparer. Ce que nous visons dans le cadre de cette mission est d’une ampleur moindre, et vise surtout à offrir une solution alternative aux enseignants et autres acteurs de la communauté pédagogique qui souhaite échanger avec leurs pairs de différentes disciplines, et partager des ressources pédagogiques. Et ce en attendant que la plateforme que nous avons pensée voit le jour (ce qui risque de prendre du temps, si cela a lieu) ».

Le mail de Clémence contient des informations supplémentaires :

Certains d’entre vous ont demandé certaines précisions avant de confirmer leur engagement, je vais donc tacher d’éclairer la démarche, afin que vous puissiez décider si vous souhaitez vraiment contribuer à cette mission :

  • Il s’agit à ce stade uniquement de constituer et structurer la plateforme, pas encore de la diffuser, ni encore de l’alimenter avec des ressources et témoignages. Cette phase viendra plus tard. Si c’est sur cet aspect que vous souhaitez contribuer, ne vous inquiétez pas, tout le réseau des Shifters seront tenus informés de la mise en route de la plateforme, et il sera temps d’apporter votre aide pour cette étape à ce stade.
  • En ce qui concerne l’organisation de cette mission, il est nécessaire qu’un pilote se désigne, pour coordonner le travail, et animer le suivi de la mission, et faire le lien plus directement avec moi au Shift. à certains d’entre vous se sentent-ils capables de tenir ce rôle ? En effet, je ne piloterais pas précisément cette mission, même si nous travaillerons en étroite collaboration pour être sûrs d’aller dans la bonne (et la même) direction. Si vous êtes intéressés, merci de me le signaler !
  • En ce qui concerne les outils de travail, le plus simple est que ceux d’entre vous qui sont toujours motivés pour discuter concrètement des outils et supports à disposition se retrouve sur une chaine dédiée sur le slack Shifters (#Mission Plateforme pédagogique) pour se reconnaitre et initier les échanges. Pour le support « papier », je vous laisse décider de l’outil qui vous convient le mieux (j’ai personnellement tendance à utiliser un googledoc et googlesheet pour travailler à plusieurs et mettre les idées en commun). Ne pas être à Paris ne devrait pas poser de problème, et la plupart des échanges pourront, je pense, se faire via les outils numériques.
  • En termes de quantité de travail demandée : ce sera selon le nombre de personnes impliquées. Mais a priori il s’agit plutôt de mener une discussion et partager vos expériences quant à ces outils-là, et ensuite réfléchir à la manière de structurer l’outil. Puis la diffusion se fera avec l’aide de tous les shifters qui le voudront, et ne devrait pas être trop prenante.

Quelques idées mentionnées par mail : l’utilité de regarder et comparer les outils de partage de contenu déjà existantes et utilisées par les enseignants (moodle, workplace, slack).

Équipe

Elle est constituée de :

  • 1 référent, coordinateur de la mission : Vincent Lefoulon
  • 26 contributeurs

Calendrier

  • Semaine du 1er juillet : outil(s) choisi(s)
  • Semaine du 8 juillet : outils structurés et configurés
  • Semaine du 22 juillet : outils déployés et utilisables
  • Semaines suivantes : communication autour de l'outil, diffusion dans le monde de l'enseignement

Contenu de la mission

Etude du cahier des charges

Le terme « outil » désigne l'outil temporaire mis en place par les Shifters et non pas l'outil final.

Questions/remarques

On liste ici les potentiels points peu clairs du cahier des charges, les questions non soulevées...

  • L'outil devra-t-il être sous licence libre ?
  • Par qui sera-t-il déployé et maintenu (d'un point de vue informatique) ?
  • Qui maintiendra le contenu de la plateforme (alimentation, modération...) ?
  • Présence de données personnelles dans un compte d'utilisateur et probablement un profil, le RGPD doit être "légalement" appliqué.
  • Des contenus vont être mis en ligne. Peut se poser la question de la propriété intellectuelle et de la licence
  • Attention aux suites et aux applications gratuites sur le cloud. La sécurité et la confidentialité des données (si c'est un prérequis) ne sont pas nécessairement "garanties". L'ANSSI (Agence Nationale de la Sécurité des Systèmes d'Information) fait des recommandations en ce sens. En outre, certaines plateforme autorisent un nombre limité de messages.
  • Peut-on avoir plusieurs outils, à l'instar des Shifters qui travaillent avec Slack pour les discussions et un wiki pour le contenu persistent ?
  • "Possibilité pour les utilisateurs d’uploader des ressources pédagogiques accessibles à tous" -> "tous" inclut-il les personnes non inscrites sur la plateforme ?

Déploiement informatique

Cette section décrit comment la plateforme a été déployée informatiquement.

On distingue 2 environnements: - un environnement de développement/test qui est un bac à sable temporaire, réservé à certains membres des shifters, permettant de mettre au point la plateforme (ergonomie, modules, etc). Liens: https://159.122.175.176:31000/, http://159.122.175.176:30000/ - et un environnement de production utilisée par les utilisateurs finaux (enseignants, chercheurs, etc), utilisant le paramétrage mis au point sur la plateforme de test. Lien: https://shifterscluster-prod.par01.containers.appdomain.cloud/

Ces 2 environnements sont hébergés sur la plateforme de Cloud de IBM. (cloud.ibm.com). Ils sont constitués tous deux d'un cluster Kubernetes executant des versions containerisées (Docker) de Moodle et de MariaDB.

Environnement de test

Création du cluster

- Création d’un groupe de resource ShiftersResourceGroup-Dev

- Création d’un Cluster Kubernetes gratuit (local node : 1 seule machine héberge le contrôleur et les worker nodes) sur ibmcloud (cloud.ibm.com) sur le Cloud Public zone Europe / Datacenters de Frankfort dans le groupe de ressources , nommé ShiftersCluster-Dev

- Association du cluster ShiftersCluster-Dev au groupe de ressources ShiftersResourceGroup-Dev

- Création d’un groupe d’accès (IAM) ShiftersAccessGroup

- Ajout de Vincent Lefoulon et Tom Domenge dans le groupe utilisateurs en tant qu’Editors

- Installation sur le poste de travail de quelques outils d'interface CLI ainsi que le plug-in Kubernetes Service. Sur MacOS la commande était:

curl -sL https://ibm.biz/idt-installer | bash

- Connection au cluster

ibmcloud login -a cloud.ibm.com -r eu-de -g ShiftersResourceGroup-Dev

Noeud final de l'API : https://cloud.ibm.com

Email> christian@chateauvieux.net

Password> Authentification... OK

Compte ciblé Christian Chateauvieux's Account (e57a5c5d7c8d46c0959d04a481877ee3) <-> 1957782

Groupe de ressources ciblé ShiftersResourceGroup-Dev

Région ciblée eu-de


Noeud final d'API : https://cloud.ibm.com Région : eu-de Utilisateur : christian@chateauvieux.net Compte : Christian Chateauvieux's Account (e57a5c5d7c8d46c0959d04a481877ee3) <-> 1957782 Groupe de ressources : ShiftersResourceGroup-Dev Noeuds finaux d'API CF : Organisation : Espace :

Astuce : si vous gérez les services et les applications Cloud Foundry - Utilisez 'ibmcloud target --cf' pour cibler l'organisation/l'espace Cloud Foundry de manière interactive ou utilisez 'ibmcloud target --cf-api ENDPOINT -o ORG -s SPACE' pour cibler l'organisation/l'espace. - Utilisez 'ibmcloud cf' si vous souhaitez exécuter l'interface de ligne de commande Cloud Foundry avec le contexte IBM Cloud CLI en cours.

- Téléchargement sur le poste local de la configuration du cluster

- ibmcloud ks cluster-config --cluster ShiftersCluster-Dev

OK La configuration de ShiftersCluster-Dev a été téléchargée correctement.

- Export des variables d'environnement pour commencer à utiliser Kubernetes.

export KUBECONFIG=/Users/Christian/.bluemix/plugins/container-service/clusters/ShiftersCluster-Dev/kube-config-mil01-ShiftersCluster-Dev.yml

- Création du role binding d'administration

kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default


- Initialisation du Tiller Helm sur le cluster

helm init --upgrade


- Ajout du repository Kubernetes

helm repo add kubernetes https://kubernetes-charts.storage.googleapis.com

"kubernetes" has been added to your repositories


Installation de Moodle via Helm Charts

- On se place dans moodle-for-shifters/ibmcloud/dev

cd moodle-for-shifters/ibmcloud/dev

- Création des espaces de stockage pour MariaDB et Moodle

kubectl apply -f persistentVolumeClaim-mariadb-dev.yaml 

persistentvolumeclaim/data-moodle-for-shifters-mariadb-0 created

kubectl apply -f persistentVolume-mariadb-dev.yaml 

persistentvolume/mariadb-data created

kubectl apply -f persistentVolumeClaim-moodle-dev.yaml 

persistentvolumeclaim/data-moodle-for-shifters created

kubectl apply -f persistentVolume-moodle-dev.yaml 

persistentvolume/moodle-data created

- Installation de Moodle

helm install --name moodle-for-shifters --values=values-dev.yaml kubernetes/moodle

NAME: moodle-for-shifters LAST DEPLOYED: Fri Aug 9 15:39:44 2019 NAMESPACE: default STATUS: DEPLOYED

RESOURCES: ==> v1/ConfigMap NAME DATA AGE moodle-for-shifters-mariadb 1 1s moodle-for-shifters-mariadb-tests 1 1s

==> v1/Pod(related) NAME READY STATUS RESTARTS AGE moodle-for-shifters-6d4f885986-kh7fp 0/1 ContainerCreating 0 1s moodle-for-shifters-mariadb-0 0/1 ContainerCreating 0 1s

==> v1/Secret NAME TYPE DATA AGE moodle-for-shifters Opaque 2 1s moodle-for-shifters-mariadb Opaque 2 1s

==> v1/Service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE moodle-for-shifters NodePort 172.21.99.116 <none> 80:30917/TCP,443:31037/TCP 1s moodle-for-shifters-mariadb ClusterIP 172.21.40.180 <none> 3306/TCP 1s

==> v1beta1/Deployment NAME READY UP-TO-DATE AVAILABLE AGE moodle-for-shifters 0/1 1 0 1s

==> v1beta1/StatefulSet NAME READY AGE moodle-for-shifters-mariadb 0/1 1s


NOTES:

    • Please be patient while the chart is being deployed **

1. Access you Moodle instance with:

 export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services moodle-for-shifters)
 export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")
 echo "Moodle URL: http://$NODE_IP:$NODE_PORT/"

2. Login with the following credentials

 echo Username: admin
 echo Password: $(kubectl get secret --namespace default moodle-for-shifters -o jsonpath="{.data.moodle-password}" | base64 --decode)

- Le node port retourné ici est 30000 (HTTP) ou 31000 (HTTPS)

- Obtention de l'addresse IP du worker node de test

ibmcloud cs workers ShiftersCluster-Dev 

OK ID Adresse IP publique Adresse IP privée Version Etat Statut Zone Version kube-bl5d3k3f01qu1qq11tsg-shiftersclu-default-0000007f 159.122.175.176 10.144.195.184 free normal Ready mil01 1.13.8_1530

- Admin Moodle: admin | Mot de passe: Sh1ftmood4

- Exposition du port d'écoute (NOT WORKING...)

kubectl expose deployment moodle-for-shifters --type=NodePort --port=80 --name=moodle-service --target-port=31000

service/moodle-service exposed

Environnement de production

Création du cluster

- Création d’un groupe de resource ShiftersResourceGroup-Prod

- Création d’un Cluster Kubernetes payant (1 machine héberge le contrôleur et 1 worker node) sur ibmcloud (cloud.ibm.com) sur le Cloud Public zone Europe / Datacenters de Paris dans le groupe de ressources , nommé ShiftersCluster-Prod

- Association du cluster ShiftersCluster-Prod au groupe de ressources ShiftersResourceGroup-Prod

- Création d’un groupe d’accès (IAM) ShiftersAccessGroup

- Ajout de Vincent Lefoulon et Tom Domenge dans le groupe utilisateurs en tant qu’Editors

- Installation sur le poste de travail de quelques outils d'interface CLI ainsi que le plug-in Kubernetes Service. Sur MacOS la commande était:

curl -sL https://ibm.biz/idt-installer | bash

- Connection au cluster

ibmcloud login -a cloud.ibm.com -r eu-de -g ShiftersResourceGroup-Prod

Noeud final de l'API : https://cloud.ibm.com

Email> christian@chateauvieux.net

Password> Authentification... OK

Compte ciblé Christian Chateauvieux's Account (e57a5c5d7c8d46c0959d04a481877ee3) <-> 1957782

Groupe de ressources ciblé ShiftersResourceGroup-Prod

Région ciblée eu-de


Noeud final d'API : https://cloud.ibm.com Région : eu-de Utilisateur : christian@chateauvieux.net Compte : Christian Chateauvieux's Account (e57a5c5d7c8d46c0959d04a481877ee3) <-> 1957782 Groupe de ressources : ShiftersResourceGroup-Prod Noeuds finaux d'API CF : Organisation : Espace :

Astuce : si vous gérez les services et les applications Cloud Foundry - Utilisez 'ibmcloud target --cf' pour cibler l'organisation/l'espace Cloud Foundry de manière interactive ou utilisez 'ibmcloud target --cf-api ENDPOINT -o ORG -s SPACE' pour cibler l'organisation/l'espace. - Utilisez 'ibmcloud cf' si vous souhaitez exécuter l'interface de ligne de commande Cloud Foundry avec le contexte IBM Cloud CLI en cours.

- Téléchargement sur le poste local de la configuration du cluster

ibmcloud ks cluster-config --cluster ShiftersCluster-Prod

OK La configuration de ShiftersCluster-Prod a été téléchargée correctement.


- Export des variables d'environnement pour commencer à utiliser Kubernetes.

export KUBECONFIG=/Users/Christian/.bluemix/plugins/container-service/clusters/ShiftersCluster-Prod/kube-config-par01-ShiftersCluster-Prod.yml

- Création du role binding d'administration

kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default


- Initialisation du Tiller Helm sur le cluster

helm init --upgrade


- Ajout du repository Kubernetes

helm repo add kubernetes https://kubernetes-charts.storage.googleapis.com

"kubernetes" has been added to your repositories


Installation de Moodle via Helm Charts

- On se place dans moodle-for-shifters/ibmcloud/prod

cd moodle-for-shifters/ibmcloud/prod

- Installation de Moodle

helm install --name moodle-for-shifters --values=values-prod.yaml kubernetes/moodle

NAME: moodle-for-shifters LAST DEPLOYED: Fri Aug 9 15:39:44 2019 NAMESPACE: default STATUS: DEPLOYED

RESOURCES: ==> v1/ConfigMap NAME DATA AGE moodle-for-shifters-mariadb 1 1s moodle-for-shifters-mariadb-tests 1 1s

==> v1/Pod(related) NAME READY STATUS RESTARTS AGE moodle-for-shifters-6d4f885986-kh7fp 0/1 ContainerCreating 0 1s moodle-for-shifters-mariadb-0 0/1 ContainerCreating 0 1s

==> v1/Secret NAME TYPE DATA AGE moodle-for-shifters Opaque 2 1s moodle-for-shifters-mariadb Opaque 2 1s

==> v1/Service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE moodle-for-shifters NodePort 172.21.99.116 <none> 80:30917/TCP,443:31037/TCP 1s moodle-for-shifters-mariadb ClusterIP 172.21.40.180 <none> 3306/TCP 1s

==> v1beta1/Deployment NAME READY UP-TO-DATE AVAILABLE AGE moodle-for-shifters 0/1 1 0 1s

==> v1beta1/StatefulSet NAME READY AGE moodle-for-shifters-mariadb 0/1 1s


NOTES:

    • Please be patient while the chart is being deployed **

1. Access you Moodle instance with:

 export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services moodle-for-shifters)
 export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")
 echo "Moodle URL: http://$NODE_IP:$NODE_PORT/"

2. Login with the following credentials

 echo Username: user
 echo Password: $(kubectl get secret --namespace default moodle-for-shifters -o jsonpath="{.data.moodle-password}" | base64 --decode)

- Le node port retourné ici est 80

- Obtention de l'addresse IP du worker node de test

ibmcloud cs workers ShiftersCluster-Prod 
-> 159.8.83.19

- Admin Moodle: user | Mot de passe: Apxseo4m5e



Installation via Docker (Non utilisée)

ibmcloud cr namespace-add shifters

Ajout de l'espace de nom 'shifters'...

Espace de nom ajouté avec succès 'shifters'

OK

docker pull stable/moodle
docker tag bitnami/moodle de.icr.io/shifters/repo:moodle
ibmcloud cr login

Connexion à 'registry.eu-de.bluemix.net'... Connecté à 'registry.eu-de.bluemix.net'.

IBM Cloud Container Registry is adopting new icr.io domain names to align with the rebranding of IBM Cloud for a better user experience. The existing bluemix.net domain names are deprecated, but you can continue to use them for the time being, as an unsupported date will be announced later. For more information about registry domain names, see https://cloud.ibm.com/docs/services/Registry?topic=registry-registry_overview#registry_regions_local

Connexion à 'de.icr.io'... Connecté à 'de.icr.io'.

IBM Cloud Container Registry is adopting new icr.io domain names to align with the rebranding of IBM Cloud for a better user experience. The existing bluemix.net domain names are deprecated, but you can continue to use them for the time being, as an unsupported date will be announced later. For more information about registry domain names, see https://cloud.ibm.com/docs/services/Registry?topic=registry-registry_overview#registry_regions_local

OK

docker push de.icr.io/shifters/repo:moodle

Rencensement d'outils

Ce document recense plusieurs outils selon divers critères :

https://lite.framacalc.org/shifters_plateforme_pedago

Moodle

Du fait des fonctionnalités qu'elle fournit et de son usage dans le monde de l'enseignement, nous avons choisi la plateforme Moodle : https://moodle.org/

Configuration

Cette section décrit comment la plateforme a été configurée depuis son interface d'administration pour la rendre plus ergonomique et la faire correspondre à nos besoins.

Un ancien travail : https://lite.framacalc.org/shifters_moodle

URL de la page de paramétrage Paramétrage détaillé Raison Auteur Date
/admin/tool/langimport/index.php Installer le pack "Français (fr)" Installer le langage "français" Vincent 13/08/19
/admin/settings.php?section=langsettings "Langue par défaut" = "Français (fr)" Sélectionner le langage "français" par défaut Vincent 13/08/19
/admin/settings.php?section=frontpagesettings

"Nom complet du site" = "Les Shifters"

"Nom abrégé du site" = "Les Shifters"

"Page d'accueil" = "Zone de recherche de cours", "Liste des cours"

"Éléments de la page d'accueil, une fois connecté" = "Zone de recherche de cours", "Cours de l'utilisateurs", "Liste des cours"

"Nombre d'annonces" = 0

Personnaliser la page d'accueil Vincent 13/08/19
Personnaliser le tableau de bord par défaut
/admin/settings.php?section=manageauths

Activer le plugin "Auto-enregistrement par courriel"

"Auto-enregistrement" = "Auto-enregistrement par courriel"

"Permettre la connexion au moyen de l'adresse de courriel" = "Oui" (case cochée)

S'inscrire à la plateforme sans demander l'autorisation Vincent 13/08/19
/admin/settings.php?section=enrolsettingsself "Autoriser les méthodes d'auto-inscription existantes" = "Oui" Participer à un cours sans demander l'autorisation Vincent 13/08/19
/admin/settings.php?section=enrolsettingsguest "Permettre l'accès anonyme" = "Oui" Lire les cours en tant qu'invité Vincent 13/08/19
/admin/settings.php?section=userpolicies "Connecter automatiquement les visiteurs anonymes" = "Oui" Donner le rôle d'invité aux visiteurs non connectés Vincent 13/08/19
Créer un cours sans demander l'autorisation