-
vitam-prg authored8c308c15
Modules Cots
Guidelines
Les COTS, software utlises par les solutions VITAMUI et VITAM, sont tous open-source. Pour des besoins de maintenabilite et de securites, ils sont entierement repackages au format RPM puis publies sur les repository yum VITAMUI.
VITAMUI s'appuie sur deux types de COTS dans son architecture:
-
les COTS fournit par vitam auxquels VITAMUI se branche.
-
les COTS utilises uniquement par VITAMUI
Le packaging des COTS suivront les principes suivants:
-
Les noms de package cots seront de la forme vitamui|vitam-COTS_NAME. Les services systemd installes sur les systemes suivront la meme convention de nommage
-
Les fichiers repackages permettront d'appliquer la protection de droits users system vitamui,vitam,vitamuidb,vitamdb
-
Dans la mesure du possible les packages COTS rpm pourront contenir l'ensemble des fichiers du software
-
Dans le cas contraire, le packages COTS VITAMUI|VITAM contiendrons des dependances vers les packages RPM officiels. Ils fourniront comme fichiers l'unit systemd du service COTS et des fichiers de configurations stockes dans le systeme de fichiers VITAMUI/VITAM permettant de proteger le lancement du service par les droits users systeme linux.
Le packaging specifique des cots VITAMUI contiendra un Makefile dedie pour chaque afin d'adapter la generation du contenu des packages. Ils pourront egalement contenir des templates de packaging dedies pouvant redefinir les fichiers unit systemd, les fichiers de configurations, les scripts d'installation RPM executes.
Le repackaging entier des COTS est la technique a priviligier pour les raisons suivantes:
-
l'installation / desinstallation des fichiers pourra se faire entierement dans les scripts RPM
-
aucune dependance RPM donc pas d'etapes d'installation / desinstallation supplementaire et pas de gestion de repository supplementaire si la dependance n'est pas dans les repository officiels RedHat ou epel-release.
-
Eventuellement, les sources/binaires des cots pourront etre conserves dans le repository vitamui.
Liste des cots Vitam
- consul
- mongo*
- mongo-express
- syslog
- elasticsearch
- curator
- siegfried
- cerebro
- logstash
- kibana
- apache
Liste des cots VITAMUI
- consul
- logstash
- syslog
- mongo*
- nginx
Packaging des cots VITAMUI
vitamui-consul
Le soft consul sera entierement repackager dans vitamui-consul. Ce package contiendra
- le binaire consul dans /vitamui/bin/consul/consul,
- le fichier unit systemd vitamui-consul.service
- la ligne de commande consul dans /vitamui/conf/consul/sysconfig
Mise a jour de la version de consul:
La version de consul embarquee dans le package sera parametrable au niveau du fichier pom.xml du cots vitamui-consul (fichier vitamui/cots/vitamui-consul/pom.xml). Ce nom de version sera transmis en parametre du makefile qui telechargera le binaire consul dans la bonne version
...
<argument>CONSUL_VERSION=1.4.1</argument>
...
vitamui-logstash
Le soft logstash sera entierement repackage dans vitamui-logstash a partir de l'archive des sources Logstash. Le package RPM contiendra:
- les librairies Java et fichiers de logstash
- les fichiers de configuration de logstash adapte au file system vitamui dans /vitamui/conf/logstash
- l'unit systemd vitamui-logstash
Les scripts d'installation RPM appliquerons les droits vitamuidb au package logstash (a corriger).
Mise a jour de la version de logstash:
La version de logstash embarquee dans le package sera parametrable au niveau du fichier pom.xml du cots vitamui-logstash (fichier vitamui/cots/vitamui-logstash/pom.xml). Ce nom de version sera transmis en parametre du Makefile qui telechargera l'archive de source logstash correspondant a la version choisie.
...
<argument>LOGSTASH_VERSION=6.4.2</argument>
...
vitamui-nginx
Le package COTS vitamui-nginx installera le soft nginx par le biais d'une dependance RPM. Cette dependance ira chercher le binaire NGINX depuis le repository epel-release. Le package vitamui-nginx contiendra:
- l'unit systemd vitamui-nginx
- la configuration du logrotate de NGINX dans le systeme de fichier vitamui
Mise a jour de la version de NGINX:
La version latest de NGINX sera installee sur le systeme. La mise a jour du softs s'effectuera a partir d'une update yum.
vitamui-mongod
Le package COTS vitamui-mongod installera le soft mongo-org par le biais d'une dependance RPM. Cette dependance ira chercher le binaire NGINX depuis les repository officiels mongo. Le package vitamui-mongod contiendra:
- l'unit systemd vitamui-nginx
- la configuration du logrotate de mongo dans le systeme de fichier vitamui
La dependance vers mongod-org apportera sur le systeme les softs mongod, mongoc, mongos, mongodump, mongocli.
Mise a jour de la version de mongod:
La version mongo sera parametree au niveau du repository mongod installee sur le systeme. L'url de ce repository est renseignee dans le deploiement (var mongo_repository_url, https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/{{ mongod_version }}/x86_64/)
-
mise a jour mineure de mongo: => yum update via le deploiement (non teste encore et mongo est installe en version latest sur le systeme).
-
mise a jour majeure de mongo: modifier dans le deplioement la variable mongod_version au niveau du fichier environment/group_vars/all/mongod.yml.
- pour un redeploiement from scratch, la version sera prise en compte au niveau de l'installation
- pour la mise a jour d'un environnement, suivre la procedure de mise a jour mongo
vitamui-mongo-express
Le package rpm vitamui-mongo-express est entierement repackage a partir de de l'installation via npm. Le package contient toutes les sources de mongo-express installee dans /vitamui/app/mongo-express et le ficher unit systemd de vitamui-mongo-express.
Mise a jour de la version de mongo-express
Pour modifier la version de mongo express, editez la dans le fichier cots/vitamui-mongo-express/package.json.