ProgrammeVitam / vitam

Digital Archives Management System developped by French government/Programme interministériel archives numériques ; core system.
CeCILL Free Software License Agreement v2.1
121 stars 41 forks source link
archivage vitam

VITAM

.. section-numbering::

For a quick presentation in english, please follow this link <README.en.rst>_.

.. image:: doc/fr/logo_vitam.png :alt: Logo Vitam :align: center

Le programme interministériel Vitam

Il a pour objectif :

Pour plus d’information sur le programme, voir www.programmevitam.fr <http://www.programmevitam.fr/pages/presentation/>_.

La solution logicielle Vitam

La solution logicielle développée dans le programme Vitam permettra la prise en charge, la conservation, la pérennisation et la consultation sécurisée de très gros volumes d’archives numériques. Elle assurera la gestion complète du cycle de vie des archives et donc la garantie de leur valeur probante. Elle pourra être utilisée pour tout type d'archive, y compris pour des documents classifiés de défense.

Cette solution est développée en logiciel libre pour faciliter sa réutilisation, son évolution, son adaptation à des contextes particuliers si nécessaire, sa maintenance et donc globalement sa pérennité.

L’obligation de mettre en œuvre une solution d’archivage numérique dans les contextes très différents des trois ministères porteurs, tant en termes de pratiques archivistiques qu’en termes de production informatique, a orienté notre choix vers la réalisation d’un back-office. L’objectif est de prendre en compte dans la solution logicielle Vitam, le maximum de fonctions mutualisables et technologiquement complexes, d’autant plus quand elles s’appliquent à des très grands nombres d’objets, et de laisser chaque entité porter ses propres spécificités de processus. Cette vision permet ainsi la réutilisation plus large, tout en assurant la réalisation d’un outil générique intégrable selon les besoins d’acteurs variés dans leur système d’information.

Positionnée comme une brique d’infrastructure, elle prendra en charge toutes les opérations nécessaires pour assurer la pérennisation des documents numériques versés et pour garantir le maintien de leur valeur probante.

C’est le code de ce back-office central qui est ici publié. Des outils annexes sont aussi publiés selon les besoins dans d’autres dépôts (Cf. organisation GitHub ProgrammeVitam <https://github.com/ProgrammeVitam>_).


.. contents::

Structure du projet

Le projet se compose des sous-dossiers suivants :

Build

.. tip:: Les conteneurs docker présents (CentOS et Debian) dans le dossier dev-deployment contient les dépendances permettant de construire une version du logiciel (à l'exception de la documentation) ; son usage est abordé dans le paragraphe dédié du déploiement sur un poste de développement.

.. caution:: Pour construire VITAM au sein d'un environnement public, il est nécessaire de désactiver le profile maven vitam (activé par défaut) (Cf. la documentation maven <https://maven.apache.org/guides/introduction/introduction-to-profiles.html#Deactivating_a_profile>_).

.. caution:: Pour builder la solution logicielle VITAM, il est nécessaire, au préalable, de builder elasticsearch-metrics-reporter-java (version 2.3.0-VITAM https://github.com/ProgrammeVitam/elasticsearch-metrics-reporter-java/tree/2.3.0-VITAM).

Toutes les instructions suivantes s'exécutent dans le répertoire racine de ce dépôt.

Composants Java

Les composants Java sont présents dans le répertoire sources.

Pré-requis


Il est nécessaire de builder la librairie elasticsearch-metrics-reporter-java mise à jour par le projet VITAM:

Cloner le dépot https://github.com/ProgrammeVitam/elasticsearch-metrics-reporter-java.git

Builder le projet elasticsearch-metrics-reporter-java:

.. code-block:: bash

mvn clean install

Instructions


Pour construire globalement les packages VITAM :

.. code-block:: bash

mvn package rpm:attached-rpm jdeb:jdeb install -f sources/pom.xml -P-vitam

Autres commandes utiles


Pour ignorer tous les tests:

.. code-block:: bash

mvn clean install -DskipTests -f sources/pom.xml -P-vitam

Pour ignorer les tests d'intégration:

.. code-block:: bash

mvn clean test`` ou ``mvn clean install -DskipITs -f sources/pom.xml -P-vitam

Pour exécuter uniquement les tests d'intégration:

.. code-block:: bash

mvn clean test-compile failsafe:integration-test -f sources/pom.xml -P-vitam

Packages externes

Les packages issus de composants externes sont présents dans le répertoire :

Pré-requis


.. note:: Pour les packages rpm, la seule plate-forme de compilation possible est CentOS 7 (en raison de la dépendance vers les rpmdevtools).

Instructions


CentOS

Pour construire les packages rpm dédiés :

.. code-block:: bash

./rpm/vitam-product/build-all.sh

Pour construire le cache des packages externes :

.. code-block:: bash

./rpm/vitam-external/build_repo.sh

Debian

Pour construire les packages deb dédiés :

.. code-block:: bash

./deb/vitam-product/build-all.sh

Pour construire le cache des packages externes :

.. code-block:: bash

./deb/vitam-external/build_repo.sh

Documentation

La documentation est présente dans le répertoire doc.

Pré-requis


.. tip:: Sur Centos 7, pour l'installation de sphinx, il faut installer les 2 packages python-sphinx et python-sphinx_rtd_theme puis créer le lien symbolique : ln -s /usr/lib/python2.7/site-packages/sphinx_rtd_theme /usr/lib/python2.7/site-packages/sphinx/themes/.

.. tip:: Un exemple d'image docker permettant le build de la documentation de Vitam se trouve dans vitam-conf-dev/build_doc

Instructions


Pour construire la documentation ainsi que le package du serveur de documentation :

.. code-block:: bash

mvn package rpm:attached-rpm jdeb:jdeb install -f doc/pom.xml -P-vitam

Autres commandes


Il est possibles de construire uniquement le site statique de documentation ; pour cela, il est nécessaire de se placer dans le répertoire doc et d'exécuter la commande make clean symlinks html latexpdf raml autres. Le résultat est disponible dans /doc/target.

Deploiement sur poste de développement

2 méthodes existent pour déployer vitam sur un poste de développement.

Alternative 1 : docker

Cette méthode permet de construire et déployer un système VITAM de manière presque automatique au sein d'un conteneur docker qui héberge l'intégralité des outils requis pour construire et déployer la solution.

Pré-requis


Procédure


Alternative 2 : manuelle (virtualisation)

.. note:: L'installation manuelle de VITAM est plus complexe, et n'inclut pas les étapes de build ; par conséquent, elle n'est conseillée que lorsque la méthode utilisant le conteneur docker ne fonctionne pas.

Pré-requis


Système hôte ++++++++++++

Configuration initiale de la VM +++++++++++++++++++++++++++++++

.. code-block:: ini

[local]
name=Local repo
baseurl=file:///code/target
enabled=1
gpgcheck=0
protect=1

Procédure


Sur le poste de développement :

Dans la VM :

.. code-block:: bash

rm -rf target/packages
mkdir -p target/packages
find . -name '*.rpm' -type f -exec cp {} target/packages \;

.. code-block:: bash

createrepo -x '.git/*' .

.. code-block:: bash

dpkg-scanpackages -m. |gzip -9c > Packages.gz

.. code-block:: bash

yum clean all

.. code-block:: bash

apt-get clean

.. code-block:: bash

yum --disablerepo="*" --enablerepo="local" list available

L'accès aux composants une fois démarrés dépend de la nature de la connexion réseau présentée par la VM (bridge, NAT ou host).