8.2.7.2. Configuration / fichiers utiles¶
Les fichiers de configuration sont gérés par les procédures d’installation ou de mise à niveau de l’environnement VITAM. Se référer au DIN.
Les fichiers de configuration sont définis sous /vitam/conf/functional-administration
.
8.2.7.2.1. Fichier functional-administration.conf
¶
ce fichier permet de définir l’URL d’accès au access server.
#jinja2: lstrip_blocks: True
# Configuration MongoDB
mongoDbNodes:
{% for host in groups['hosts_mongos_data'] %}
- dbHost: {{ hostvars[host]['ip_service'] }}
dbPort: {{ mongodb.mongos_port }}
{% endfor %}
dbName: masterdata
dbAuthentication: {{ mongodb.mongo_authentication }}
dbUserName: {{ mongodb['mongo-data'].functionalAdmin.user }}
dbPassword: {{ mongodb['mongo-data'].functionalAdmin.password }}
#Basic Authentication
adminBasicAuth:
- userName: {{ admin_basic_auth_user }}
password: {{ admin_basic_auth_password }}
jettyConfig: jetty-config.xml
workspaceUrl: {{vitam.workspace | client_url}}
processingUrl: {{vitam.processing | client_url}}
# ElasticSearch
clusterName: {{ vitam_struct.cluster_name }}
elasticsearchConfigurationFile: {{ vitam_folder_conf }}/elasticsearch-settings/elasticsearch-configuration.json
elasticsearchNodes:
{% for host in groups['hosts_elasticsearch_data'] %}
- hostName: {{ hostvars[host]['ip_service'] }}
httpPort: {{ elasticsearch.data.port_http }}
{% endfor %}
# ElasticSearch tenant indexation
elasticsearchTenantIndexation:
default_config:
number_of_shards: {{ vitam_elasticsearch_tenant_indexation.default_config.masterdata.number_of_shards | default('1') }}
number_of_replicas: {{ vitam_elasticsearch_tenant_indexation.default_config.masterdata.number_of_replicas | default('2') }}
{% for collection in ["accesscontract", "accessionregisterdetail", "accessionregistersummary", "accessionregistersymbolic", "agencies", "archiveunitprofile", "context", "fileformat", "filerules", "griffin", "ingestcontract", "managementcontract", "ontology", "preservationscenario", "profile", "securityprofile","schema"] %}
{% if vitam_elasticsearch_tenant_indexation.masterdata[collection] is defined %}
{{ collection }}:
{% if vitam_elasticsearch_tenant_indexation.masterdata[collection].number_of_shards is defined %}
number_of_shards: {{ vitam_elasticsearch_tenant_indexation.masterdata[collection].number_of_shards }}
{% endif %}
{% if vitam_elasticsearch_tenant_indexation.masterdata[collection].number_of_replicas is defined %}
number_of_replicas: {{ vitam_elasticsearch_tenant_indexation.masterdata[collection].number_of_replicas }}
{% endif %}
{% endif %}
{% endfor %}
# ExternalId configuration
listEnableExternalIdentifiers:
{% if vitam_tenants_usage_external is iterable %}
{% for tenant in vitam_tenants_usage_external %}
{% if tenant.identifiers is defined %}
{{ tenant.name }}:
{% for external in tenant.identifiers %}
- {{ external }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
listMinimumRuleDuration:
{% if vitam_tenant_rule_duration is iterable %}
{% for tenant in vitam_tenant_rule_duration %}
{{ tenant.name }}:
{% for rule in tenant.rules %}
{% for key, value in rule.items() %}
{{ key }}: {{ value }}
{% endfor %}
{% endfor %}
{% endfor %}
{% endif %}
accessionRegisterSymbolicThreadPoolSize: {{ vitam.functional_administration.accessionRegisterSymbolicThreadPoolSize | default(16) }}
ruleAuditThreadPoolSize: {{ vitam.functional_administration.ruleAuditThreadPoolSize | default(16) }}
{% if primary_site | lower != "true" %}
# Reconstruction cache duration (in minutes)
reconstructionMetricsCacheDurationInMinutes: {{ vitam.functional_administration.reconstructionMetricsCacheDurationInMinutes | default(15) }}
{% endif %}
{% if vitam_elasticsearch_tenant_indexation is defined and vitam_elasticsearch_tenant_indexation is not none %}
{% set unit_custom_search = vitam_elasticsearch_tenant_indexation.default_config.unit.customSearch | default([]) %}
{% set objectgroup_custom_search = vitam_elasticsearch_tenant_indexation.default_config.objectgroup.customSearch | default([]) %}
{% set dedicated_unit_custom_search = vitam_elasticsearch_tenant_indexation.dedicated_tenants | default([]) | map(attribute='unit.customSearch') | select('defined') | list | sum(start=[]) %}
{% set dedicated_objectgroup_custom_search = vitam_elasticsearch_tenant_indexation.dedicated_tenants | default([]) | map(attribute='objectgroup.customSearch') | select('defined') | list | sum(start=[]) %}
{% set grouped_unit_custom_search = vitam_elasticsearch_tenant_indexation.grouped_tenants | default([]) | map(attribute='unit.customSearch') | select('defined') | list | sum(start=[]) %}
{% set grouped_objectgroup_custom_search = vitam_elasticsearch_tenant_indexation.grouped_tenants | default([]) | map(attribute='objectgroup.customSearch') | select('defined') | list | sum(start=[]) %}
{% if unit_custom_search or objectgroup_custom_search or dedicated_unit_custom_search or dedicated_objectgroup_custom_search or grouped_unit_custom_search or grouped_objectgroup_custom_search %}
# Custom Search On Fields applied on schema
customSearchOnFields:
{% if vitam_elasticsearch_tenant_indexation.default_config is defined and vitam_elasticsearch_tenant_indexation.default_config is not none %}
default_config:
{% if vitam_elasticsearch_tenant_indexation.default_config.unit is defined and vitam_elasticsearch_tenant_indexation.default_config.unit is not none and vitam_elasticsearch_tenant_indexation.default_config.unit.customSearch is defined and vitam_elasticsearch_tenant_indexation.default_config.unit.customSearch is not none%}
unit:
fields:
{% for entry in vitam_elasticsearch_tenant_indexation.default_config.unit.customSearch %}
{% if entry.fieldPath is defined %}
- fieldPath: {{ entry.fieldPath }}
{% if entry.types is defined and entry.types is not none %}
types:
{% for entryType in entry.types %}
- {{ entryType }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% if vitam_elasticsearch_tenant_indexation.default_config.objectgroup is defined and vitam_elasticsearch_tenant_indexation.default_config.objectgroup is not none and vitam_elasticsearch_tenant_indexation.default_config.objectgroup.customSearch is defined and vitam_elasticsearch_tenant_indexation.default_config.objectgroup.customSearch is not none %}
objectgroup:
fields:
{% for entry in vitam_elasticsearch_tenant_indexation.default_config.objectgroup.customSearch %}
{% if entry.fieldPath is defined %}
- fieldPath: {{ entry.fieldPath }}
{% if entry.types is defined and entry.types is not none %}
types:
{% for entryType in entry.types %}
- {{ entryType }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% if vitam_elasticsearch_tenant_indexation.dedicated_tenants is defined and vitam_elasticsearch_tenant_indexation.dedicated_tenants is not none %}
dedicated_tenants:
{% for entry in vitam_elasticsearch_tenant_indexation.dedicated_tenants %}
- tenants: '{{ entry.tenants }}'
{% if entry.unit is defined and entry.unit.customSearch is defined and entry.unit.customSearch is not none %}
unit:
fields:
{% for entryField in entry.unit.customSearch %}
{% if entryField.fieldPath is defined %}
- fieldPath: {{ entryField.fieldPath }}
{% if entryField.types is defined and entryField.types is not none %}
types:
{% for entryType in entryField.types %}
- {{ entryType }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% if entry.objectgroup is defined and entry.objectgroup.customSearch is defined and entry.objectgroup.customSearch is not none %}
objectgroup:
fields:
{% for entryField in entry.objectgroup.customSearch %}
{% if entryField.fieldPath is defined %}
- fieldPath: {{ entryField.fieldPath }}
{% if entryField.types is defined and entryField.types is not none %}
types:
{% for entryType in entryField.types %}
- {{ entryType }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% if vitam_elasticsearch_tenant_indexation.grouped_tenants is defined and vitam_elasticsearch_tenant_indexation.grouped_tenants is not none %}
grouped_tenants:
{% for entry in vitam_elasticsearch_tenant_indexation.grouped_tenants %}
- name: '{{ entry.name }}'
tenants: '{{ entry.tenants }}'
{% if entry.unit is defined and entry.unit.customSearch is defined and entry.unit.customSearch is not none %}
unit:
fields:
{% for entryField in entry.unit.customSearch %}
{% if entryField.fieldPath is defined %}
- fieldPath: {{ entryField.fieldPath }}
{% if entryField.types is defined and entryField.types is not none %}
types:
{% for entryType in entryField.types %}
- {{ entryType }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% if entry.objectgroup is defined and entry.objectgroup.customSearch is defined and entry.objectgroup.customSearch is not none %}
objectgroup:
fields:
{% for entryField in entry.objectgroup.customSearch %}
{% if entryField.fieldPath is defined %}
- fieldPath: {{ entryField.fieldPath }}
{% if entryField.types is defined and entryField.types is not none %}
types:
{% for entryType in entryField.types %}
- {{ entryType }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
8.2.7.2.2. Passage des identifiants des référentiels en mode esclave¶
La génération des identifiants des référentiels est gérée par Vitam quand il fonctionne en mode maître.
Par exemple :
- Préfixé par
PR-
our les profils - Préfixé par
IC-
pour les contrats d’entrée - Préfixé par
AC-
pour les contrats d’accès
Si vous souhaitez gérer vous-même les identifiants sur un service référentiel, il faut qu’il soit en mode esclave.
Note
Cette modification de comportement est réalisable post-installation. Une interruption temporaire de service est à prévoir (redémarrage du service vitam-functional-administration
.
Par défaut, tous les services référentiels de VITAM fonctionnent en mode maître. Pour désactiver le mode maître de Vitam, il faut modifier le fichier de configuration /vitam/conf/functional-administration/functional-administration.conf
.
# ExternalId configuration
listEnableExternalIdentifiers:
0:
- INGEST_CONTRACT
- ACCESS_CONTRACT
1:
- INGEST_CONTRACT
- ACCESS_CONTRACT
- PROFILE
- SECURITY_PROFILE
- CONTEXT
Depuis la version 1.0.4, la configuration par défaut de Vitam autorise des identifiants externes (ceux qui sont dans le fichier json importé).
- pour le tenant 0 pour les référentiels : contrat d’entrée et contrat d’accès.
- pour le tenant 1 pour les référentiels : contrat d’entrée, contrat d’accès, profil, profil de sécurité et contexte.
La liste des choix possibles, pour chaque tenant, est :
- INGEST_CONTRACT : contrats d’entrée
- ACCESS_CONTRACT : contrats d’accès
- PROFILE : profils SEDA
- SECURITY_PROFILE : profils de sécurité (utile seulement sur le tenant d’administration)
- CONTEXT : contextes applicatifs (utile seulement sur le tenant d’administration)
- ARCHIVE_UNIT_PROFILE : profils d’unités archivistiques
Note
se référer au métier pour ces choix.
Avertissement
Cette modification implique le redémarrage du/des composants (si mono-instance ou multi-instances du composant).
Prudence
En mode « esclave », il est fortement recommandé de faire débuter les référentiels avec d’autres chaînes de caractères que celle définies en mode « maître ».
Prudence
Ne pas oublier de répercuter cette modification sur le site secondaire
8.2.7.2.3. Paramétrage du batch de calcul pour l’indexation des règles héritées¶
La paramétrage du batch de calcul pour l’indexation des règles héritées peut être réalisé dans le fichier /group_vars/all/advanced/vitam_vars.yml
.
La section suivante du fichier vitam_vars.yml
permet de paramétrer la fréquence de passage du batch :
vitam_timers:
metadata:
- name: vitam-metadata-computed-inherited-rules
frequency: "*-*-* 02:30:00"
La section suivante du fichier vitam_vars.yml
permet de paramétrer la liste des tenants sur lequels s’exécute le batch :
vitam:
worker:
# api_output_index_tenants : permet d'indexer les règles de gestion, les chemins des règles et les services producteurs
api_output_index_tenants: [0,1,2,3,4,5,6,7,8,9]
# rules_index_tenants : permet d'indexer les règles de gestion
rules_index_tenants: [0,1,2,3,4,5,6,7,8,9]
8.2.7.2.4. Configuration du Functional administration¶
functional-administration.conf : Fichier Yaml de configuration du server worker. Il possède une propriété :
- listMinimumRuleDuration: la durée minimum de chaque type de règle par tenant
listMinimumRuleDuration:
2:
AppraisalRule : 1 year