Skip to content
Snippets Groups Projects
README.md 4.42 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Configuration Openshift
    
    
    Pierre Ecarlat's avatar
    Pierre Ecarlat committed
    Se rapprocher de l'équipe intégration pour :
    
    Pierre Ecarlat's avatar
    Pierre Ecarlat committed
    - 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) :
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    Pierre Ecarlat's avatar
    Pierre Ecarlat committed
    | Capacité | Utilisé pour   |
    | -------- | -----------    |
    | 500 MiB  | Config serveur |
    | 2 GiB    | BDD MySQL      |
    | 1 GiB    | Dumps MySQL    |
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    ## 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
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    - 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`
    
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    ## 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`
    
    
    ### Déployer le serveur d'Ecolyo Agent
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    - 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
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    - 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
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    - 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
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    - 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
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    
    - Extraire les certificats TLS avec la commande `oc extract secret/gl-cert -n default --confirm | Out-Null`
    
    Pierre Ecarlat's avatar
    Pierre Ecarlat committed
    - 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`
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    ## Régénérer et initialiser les assets
    
    
    - 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
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    
    - 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**
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    
    ## Restaurer un dump
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    - 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`
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    - Décompresser le dump souhaité `gzip -d YYYY-MM-dd_hh:mm:ss.sql.gz`
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    - Restorer ce dump `mysql -uroot -p$MYSQL_ROOT_PASSWORD -h$DATABASE_HOST $MYSQL_DATABASE < YYYY-MM-dd_hh:mm:ss.sql`