Newer
Older
- accéder à la console Openshift
- créer les secrets nécessaires au projet (forge + database + config du serveur)
- demander la création des Persistent Volumes (PV) de façon à obtenir la configuration suivante (contacter un administrateur du cluster) :
| Capacité | Utilisé pour |
| -------- | ----------- |
| 500 MiB | Config serveur |
| 2 GiB | BDD MySQL |
| 1 GiB | Dumps MySQL |
## Création des déploiements
### Déployer la base de données MySQL
- Depuis VS Code, créer un fichier ecolyo-agent-database-deployment.yml
- Copier le contenu du fichier k8s/deployments/ecolyo-agent-database-deployment.yml dedans
- Lancer `oc apply -f ecolyo-agent-database-deployment.yml`
### Créer le service de la base de données MySQL
- Depuis VS Code, créer un fichier ecolyo-agent-database-service.yml
- Copier le contenu du fichier k8s/services/ecolyo-agent-database-service.yml dedans
- Lancer `oc apply -f ecolyo-agent-database-service.yml`
## Déployer un container de restauration de dump MySQL
- Depuis VS Code, créer un fichier database-restore-deployment.yml
- Copier le contenu du fichier k8s/deployments/database-restore-deployment.yml dedans
- Lancer `oc apply -f database-restore-deployment.yml`
- Depuis VS Code, créer un fichier ecolyo-agent-server-deployment.yml
- Copier le contenu du fichier k8s/deployments/ecolyo-agent-server-deployment.yml dedans
- Lancer `oc apply -f ecolyo-agent-server-deployment.yml`
### Créer le service du serveur d'Ecolyo Agent
- Depuis VS Code, créer un fichier ecolyo-agent-server-service.yml
- Copier le contenu du fichier k8s/services/ecolyo-agent-server-service.yml dedans
- Lancer `oc apply -f ecolyo-agent-server-service.yml`
### Déployer le client d'Ecolyo Agent
- Depuis VS Code, créer un fichier ecolyo-agent-client-deployment.yml
- Copier le contenu du fichier k8s/deployments/ecolyo-agent-client-deployment.yml dedans
- Lancer `oc apply -f ecolyo-agent-client-deployment.yml`
### Créer le service du client d'Ecolyo Agent
- Depuis VS Code, créer un fichier ecolyo-agent-client-service.yml
- Copier le contenu du fichier k8s/services/ecolyo-agent-client-service.yml dedans
- Lancer `oc apply -f ecolyo-agent-client-service.yml`
### Créer la route publique d'accès au client d'Ecolyo Agent
- Extraire les certificats TLS avec la commande `oc extract secret/gl-cert -n default --confirm | Out-Null`
- Lancer la commande `oc create route edge ecolyo-agent --namespace=<NAMESPACE> --port=8080 --service=ecolyo-agent-client-service --cert=tls --cert=tls.crt --key=tls.key --hostname=ecolyo-agent.apps.grandlyon.com`
- Depuis la forge, se rendre sur le projet backoffice-server, dans la section CI/CD et lancer la pipeline sur la branche master
- Lancer manuellement le job import-convert-assets et noter son JOB_ID présent dans l'URL
- Depuis la console OpenShift, se connecter au terminal du pod ecolyo-agent-server
- Aller dans le dossier du volume "mnt" avec la commande `cd /app/mnt`
- Télécharger les assets avec la commande `curl --output image-lib.zip --header "PRIVATE-TOKEN: <BO_SERVER_API_ACCESS_TOKEN>" https://forge.grandlyon.com/api/v4/projects/621/jobs/<JOB_ID>/artifacts`
- Décompresser l'archive avec la commande `unzip -o image-lib.zip`
## Initialiser la BDD MySQL
- Suivre les étapes décrites dans le fichier [init.md](/dbinit/init.md)
## Installer les cronjobs de dump
- Depuis VS Code, créer un fichier mysql-dump-cronjob-hourly.yml
- Copier le contenu du fichier k8s/cronjobs/mysql-dump-cronjob-hourly.yml dedans
- Lancer `oc apply -f mysql-dump-cronjob-hourly.yml`
- Par défaut, le script conserve les 72 derniers dumps horaires. Vous pouvez définir le nombre de dump à conserver en changeant cette valeur après la commande `head` présente dans le script
```s -F *.sql.gz | head -n -72 | xargs -r rm```
- Répéter l'opération pour **mysql-dump-cronjob-daily** et **mysql-dump-cronjob-weekly**
- Monter un pod du déploiement "database-restore"
- Rentrer dans le terminal de ce pod
- Aller dans le dossier des dumps horaires `cd /dump/hourly` ou journaliers `cd /dump/hourly` ou hebdomadaires `cd /dump/weekly`
- Décompresser le dump souhaité `gzip -d YYYY-MM-dd_hh:mm:ss.sql.gz`
- Restorer ce dump `mysql -uroot -p$MYSQL_ROOT_PASSWORD -h$DATABASE_HOST $MYSQL_DATABASE < YYYY-MM-dd_hh:mm:ss.sql`