Exploitation

Commandes usuelles

Démarrer la plateforme :

./dc up –d

Controller l’état de la plateforme, avec docker-compose et avec docker :

./dc ps
docker ps

Consulter les logs d’un conteneur :

./dc logs phpfastcgi

Arrêter la plateforme :

./dc stop

Arrêter la plateforme et effacer les conteneurs et l’ensemble des données associées (!) :

./dc down

Gestion des mots de passe utilisateurs

Format

Optimouv stocke un hash bcrypt des mots de passe dans la base de données MySQL.

Changer un mot de passe sur Optimouv

  • Se connecter à Optimouv avec le compte admin.
  • Accéder à la section « Administration » > « Gestion des utilisateurs ».
  • Editer un compte utilisateur.
  • Saisir un nouveau mot de passe et confirmer.

Changer un mot de passe en ligne de commande

Se connecter au conteneur phpfastcgi :

./dc exec phpfastcgi bash

Aller dans le dossier de l’application :

cd /optimouv

Changer le mot de passe :

php app/console fos:user:change-password USERLOGIN
(...)
exit

Augmenter la capacité de calcul

De base l’application Optimouv dispose de 1 job de calcul de meilleur lieu de rencontre et 1 job d’optimisation des poules. Ainsi Optimouv sollicite jusqu’à 2 cœurs de la machine simultanément pour ces tâches de calcul. Si on souhaite effectuer plus de calculs en parallèle afin de servir plus d’utilisateurs simultanément et que les ressources de la machine le permettent, on peut instancier plus de jobs de calcul. C’est la commande scale de docker-compose que permet de le faire.

L’exemple ci-dessous permet de « redimensionner » à la volée afin d’obtenir 4 jobs d’optimisation des poules et 2 jobs de calcul du meilleur lieu de rencontre :

./dc scale worker_optimisations=4 worker_bestplace=2

Les jobs d’optimisation des poules sont particulièrement gourmands en CPU. Si on souhaite servir 10 utilisateurs simultanément sur cette fonctionnalité, un point de départ consiste à disposer d’une machine / VM disposant d’au moins 12 cœurs : 1 cœur pour chaque job et au moins de 2 cœurs pour le reste de l’application. Un suivi des indicateurs système doit permettre de contrôler l’utilisation du CPU et de la RAM, et ainsi vérifier la bonne adéquation de la capacité de l’infrastructure vis à vis de son utilisation.

Réinitialiser la base de données

Une fois l’application déployée / en service, si le besoin de réinitialiser la base de données se présente, il convient de suivre l’une des deux méthodes indiquées ci-dessous : soit par phpMyAdmin ou soit par Docker.

Avec phpMyAdmin

Récupérer le fichier init.sql présent dans docker/mysql/, puis dans phpMyAdmin :

  1. Effectuer une sauvegarde de la BDD actuelle : sélectionner la BDD « optimouv » > onglet « Export » > Go.
  2. Renommer la BDD : sélectionner la BDD « optimouv » > onglet « Operations » > section « Rename database to » > compléter le nouveau nom et laisser coché « Adjust privileges ».
  3. Recréer une nouvelle BDD dans l’état initiale : sélectionner « Server: mysql » en haut de la page > onglet « Import » > sélectionner le fichier init.sql > Go.

Enfin changer le mot de passe du compte admin (comme décrit dans la section « Sécurisation compte administrateur Optimouv »).

Avec Docker

Arrêter le conteneur mysql et le supprimer :

./dc stop mysql
./dc rm mysql

Relancer lancer la plateforme :

./dc up –d

Enfin changer le mot de passe du compte admin (comme décrit dans la section « Sécurisation compte administrateur Optimouv »).