Aller au contenu

Les manifestes

Les manifestes sont les fichiers centralisés de configuration à distance de chacune de nos instances : chaque instance de l'application a besoin d'un manifeste dédié pour fonctionner.

Création

Il faut créer une nouvelle instance dans le QG avant de pouvoir déployer une instance.

Warning

si la valeur originale contient \n... ou \r... (exemple : \répertoire), il est nécessaire de l'ajouter à la liste des données à encoder en base64 lors de sa récupération dans l'API.

Ajout d'une valeur dans le manifeste

Lorsqu'on souhaite rajouter une (ou plusieurs) valeurs dans les manifestes il y a plusieurs codes à modifier :

  • le code du QG pour modifier l'interface graphique et le stockage de la donnée
  • le code de l'API qui vérifie que la donnée est valide et spécifier la variable d'environnement à associer à la valeur

A noter que chaque ajout de clé dans le manifeste est par définition optionnelle pour être rétro-compatible avec les manifestes existants.

Il faut donc rajouter une valeur par défaut pour chaque nouvelle variable d'environnement dans le fichier api/.env.

Stockage externe

Samba

Le partage utilise Samba 3.

{
  "infra": {
    "stockage-externe": {
      "type": "smb",
      "chemin": "//172.16.1.128/REPERTOIRE-DISTANT",
      "identifiant": "login",
      "mot-de-passe": "password-chiffré"
    }
  }
}

Note

le port 445 doit être ouvert sur le serveur de stockage (pour vérifier : nmap ip.du.serveur.stockage).

NFS

Le partage utilise plusieurs versions de NFS : 4 et 3.

Aucune identification n'est utilisée pour le partage de fichier via NFS.

{
  "infra": {
    "stockage-externe": {
      "type": "nfs",
      "chemin": "172.16.1.128:/REPERTOIRE-DISTANT"
    }
  }
}

Note

les ports 111 et 2049 doivent être ouverts sur le serveur de stockage (pour vérifier : nmap ip.du.serveur.stockage).

Chiffrement

Le manifeste étant public sur internet, les clés contenant des mots de passe doivent être chiffrées.

Pour cela, lancer la commande suivante depuis Vagrant :

$ make encrypt
Valeur à chiffrer : coucou
U2FsdGVkX1/MThzssTLVdwLpndfrtXTCA5KOIuPSVCY=

Puis recopier le résultat dans le manifeste correspondant.

Il est possible de vérifier le chiffrement obtenu :

$ make decrypt data=U2FsdGVkX1/MThzssTLVdwLpndfrtXTCA5KOIuPSVCY=
coucou