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 VITAM-UI
######## #####################
Déploiement
===========
Préparation Préparation
============
Inventaire
----------- -----------
Créer un inventaire depuis ``environments/hosts.example`` Dans ``environments``, créer un inventaire depuis ``hosts.example``
Adaptation des group_vars 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 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.
de group_vas/all si nécessaire.
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
--- ---
./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 Création des repositories
------------------------- -------------------------
...@@ -59,12 +187,16 @@ ansible-playbook --become -i <inventaire> bootstrap.yml --vault-password-file va ...@@ -59,12 +187,16 @@ ansible-playbook --become -i <inventaire> bootstrap.yml --vault-password-file va
Déploiement 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 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 ...@@ -53,3 +53,16 @@ portal
# put list here # 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