Skip to content
Snippets Groups Projects
Unverified Commit 6d4fc06a authored by Olivier MARSOL's avatar Olivier MARSOL Committed by GitHub
Browse files

Some more explanations how-to deploy vitam-ui (#29)


* Some more explanations how-to deploy vitam-ui

* Update deployment/README.rst

thx for typo fix

Co-authored-by: default avatarbenemart <62019029+benemart@users.noreply.github.com>

Co-authored-by: default avatarbenemart <62019029+benemart@users.noreply.github.com>
parent f8891cab
No related branches found
No related tags found
No related merge requests found
########
VITAM UI
########
Déploiement
===========
#####################
Déploiement VITAM-UI
#####################
Préparation
============
Inventaire
-----------
Créer un inventaire depuis ``environments/hosts.example``
Dans ``environments``, créer un inventaire depuis ``hosts.example``
Adaptation des group_vars
-------------------------
Editer les fichiers
Sous ``environments/group_vars/all``, éditer les fichiers au besoin:
Surcharge
----------
Fichier ``ansible_options.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Editer le fichier vitamui_extra_vars.yml pour surcharger les variables
de group_vas/all si nécessaire.
Permet de gérer le nombre de tentatives d'installation de packages, ainsi que le délai entre chaque tentative. Les valeurs par défaut devraient être suffisantes.
Bootstrap
---------
Fichier ``consul_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pour que les VM puissent pointer sur les dépôts nécessaires.
Permet de gérer le paramétrage de Consul. Le paramètre utile est network: "ip_admin", par défaut donc, relié sur le réseau identifié par les host_vars "ip_admin".
Template de repo
~~~~~~~~~~~~~~~~
Si consul vitam-ui doit être rattaché à consul vitam, décommenter la fin du fichier et paramétrer "à la vitam".
Fichier ``environments/group_vars/all/repositories.yml``
Fichier ``elasticsearch_log_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lancement du playbook
Ce fichier permet la configuration du cluster Elasticsearch sur lequel logstash envoie les données.
Fichier ``infra.yml``
~~~~~~~~~~~~~~~~~~~~~
ansible-playbook -i <inventaire> bootstrap.yml --vault-password-file vault_pass.txt
Ce fichier décrit l'acèès à des services d'infrastructure :
* accès à un serveur d'envoi de mail (smtp)
* plate-forme d'enoi de SMS (pour désactive cette section, passer à ``enabled: false``)
Fichier ``kibana_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Paramérage *vitam-like* pour kibana (semble inutile)
Fichier ``logstash_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Paramétrage du composant ``vitamui-logstash`` :
* nom du *package*
* nom du service
* ports d'écoute
* gestion des log (rétention, tailles max, ...)
Fichier ``mongo_express_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Paramétrage du composant ``mongo-express`` :
* nom du *package*
* nom du service
* port découte
* base URI
Fichier ``mongodb_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Paramétrage de MongoDB :
* nom du *package*
* nom du service
* port d'écoute
* fréquence du check consul associé
* niveau de verbosité de mongoDB
* nom du réplicatset (fonction du paramètre d'inventaire ``mongo_shard_id``)
* *timeout* de connexion pour les applications clientes
Fichier ``repositories.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Permet, par un playbook ansible, de configurer les *repositories* à utiliser pour déployer vitam-ui. Renseigner les URL conformément à votre infrastructure.
Fichier ``reverse_proxy_conf.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Permet de choisir le *reverse proxy* frontal. Par défaut, apache.
Les valeurs acceptées sont :
* apache
* nginx
Fichier ``vault_consul.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. warning:: Pour le moment, ce fichier n'est pas encrypté par ``ansible-vault``
Permet de gérer l'encryption des messages consul.
Fichier ``vault_mongo_express.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Permet de gérer une *basic auth* au niveau de l'accès à mongo-express. Laisser vide n'active pas la *basic auth*.
Fichier ``vault_mongodb.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. warning:: Pour le moment, ce fichier n'est pas encrypté par ``ansible-vault``
gestion de la *passphrase* mongoDB.
Gestion des utilisteurs et de leurs droits associés
Fichier ``vault-keystores.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. note:: Fichier encrypté par ``ansible-vault``.
Se baser sur le fichier ``vault-keystore.yml.example``
Sont contenus les mots de passe des différents *stores* au format ``JKS`` gérés par la PKI.
Fichier ``vault-vitamui.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. warning:: Pour le moment, ce fichier n'est pas encrypté par ``ansible-vault``
Contient le ``nginx_cert_key_password``
Fichier ``vitam_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fichier à paramétrer avec les informations de VITAM, en particulier les changements de ports par rapport à une installation "par défaut".
La section ``vitam_certs`` contient les informations des certificats pour connecter vitam-ui à vitam.
Les fichiers ``*.p12`` associés doivent être stockés dans ``environments/certs_vitam``.
Fichier ``vitamui_vars.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"A la vitam", permet le paramétrage des différents composants de vitam-ui.
La section ``vitamui_platform_informations`` permet de définir une première entité, ainsi que quelques comptes "administrateur".
Surcharge
----------
Editer le fichier ``vitamui_extra_vars.yml`` pour surcharger les variables de ``group_vas/all`` si nécessaire.
Mise en place
==================
Playbook ``bootstrap.yml``
-------------------------------
Une fois le paramétrage des ``group_vars/all`` et éventuels *extra vars* effectué, il est possible de *bootstraper* les VM déclarées dans l'inventaire pour pointer sur les *repositories* de binaire de vitam-ui :
*Playbook* ::
ansible-playbook -i <inventaire> bootstrap.yml --vault-password-file vault_pass.txt (-e extra_vars, si nécessaire)
PKI
---
./pki/scripts/generate_ca.sh
Depuis le répertoire ``deployment``, lancer les scripts suivants ::
./pki/scripts/generate_ca.sh
./pki/certs/generate_certs.sh <inventaire>
./generate_stores.sh <inventaire>
./pki/certs/generate_certs.sh <inventaire>
Cette PKI, fournie à vocation de tests, permet de créer CA, certificats et *stores* conformément aux besoins de vitam-ui et en se basant sur les informations renseignées dans ``group_vars/all`` et l'inventaire.
./generate_stores.sh <inventaire>
Création des *host_vars*
--------------------------
Création des hostvars
----------------------
Le script suivant permet de définir, pour les VM déclarées dans l'inventaire, des *host_vars*. Ces informations peuvent être mordiées ensuite.
ansible-playbook -i <inventaire> generate_hostvars_for_1_network_interface.yml --vault-password-file vault_pass.txt
*Playbook* ::
ansible-playbook -i <inventaire> generate_hostvars_for_1_network_interface.yml --vault-password-file vault_pass.txt (-e extra_vars)
Création des repositories
-------------------------
......@@ -59,12 +187,16 @@ ansible-playbook --become -i <inventaire> bootstrap.yml --vault-password-file va
Déploiement
------------
=============
*Playbook* ::
ansible-playbook -i <inventaire> vitamui.yml --vault-password-file vault_pass.txt [ --extra-vars=@./environments/vitamui_extra_vars.yml ]
ansible-playbook -i <inventaire> vitamui.yml --vault-password-file vault_pass.txt [ --extra-vars=@./environments/vitamui_extra_vars.yml ]
Désinstallation
----------------
=================
*Playbook* ::
ansible-playbook -i <inventaire> uninstall.yml --vault-password-file vault_pass.txt [ --extra-vars=@./environments/vitamui_extra_vars.yml ]
ansible-playbook -i <inventaire> uninstall.yml --vault-password-file vault_pass.txt [ --extra-vars=@./environments/vitamui_extra_vars.yml ]
......@@ -53,3 +53,16 @@ portal
# put list here
[hosts:vars]
dns_servers=["1.1.1.1","2.2.2.2"] # defines list of DNS recursors for consul
ansible_ssh_user=centos # for ansible
ansible_become=true
vitam_site_name=tobedefined # defines name in consul
consul_domain=consul # should not be changed
url_prefix="https://{{ vitam_site_name }}.env.programmevitam.fr" # front URL from internet
# Reverse configuration
vitam_reverse_external_dns="{{ vitam_site_name }}.env.programmevitam.fr" # ServerName in reverse proxy
vitam_reverse_external_protocol=http # protocol
reverse_proxy_port=80 # associated port
http_proxy_environnement="http://vitam-factory-relay.vitam-env:3128" # if need to access internet, please provide proxy URL
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment