CyVerse-Ansible.irods_cfg
cyverse-ansible.irods-cfg
Ce rôle permettra bientôt de configurer complètement un serveur iRODS une fois iRODS installé. Pour le moment, il peut gérer les fichiers de configuration suivants.
- irods_environment.json
- etc/irods/host_access_control_config.json
- etc/irods/hosts_config.json
- etc/irods/server_config.json
- etc/irods/service_account.config
Exigences
iRODS 4.2.8 doit être installé.
Fichiers de tâches
Le fichier de tâches main.yml
qui est appelé par défaut effectue les mêmes tâches que server.yml
, c'est-à-dire qu'il déploie l'ensemble des fichiers nécessaires à un serveur iRODS.
Il y a deux fichiers de tâches spécifiques à des niveaux. client.yml
déploie les fichiers de configuration nécessaires pour un client, par exemple, les iCommands. Actuellement, il déploie le fichier irods_environment.json. server.yml
déploie les fichiers de configuration nécessaires pour un serveur iRODS.
Pour chaque fichier de configuration iRODS, il y a un fichier de tâches correspondant qui déploie uniquement ce fichier de configuration. irods_environment.yml
déploie le fichier de configuration client ou serveur, irods_environment.json par défaut. Dans le répertoire etc/irods/
, host_access_control_config.yml
déploie host_access_control_config.json, hosts_config.yml
déploie hosts_config.json, server_config.yml
déploie server_config.json, et service_account.yml
déploie service_account.config.
Les fichiers de tâches setup_irods.yml
et init_zone_user.yml
ne font pas partie de main.yml
ou des fichiers de tâches spécifiques à un niveau. setup_irods.yml
initialise la base de données ICAT avant d'appeler server.yml
, et init_zone_user.yml
initialise l'utilisateur de zone iRODS sur le hôte inventaire.
Variables de rôle
Voici les variables de rôle. Aucune d'elles n'est obligatoire.
Variable | Par défaut | Choix | Commentaire |
---|---|---|---|
irods_cfg_access_entries |
[] | Une liste d'objets d'entrée d'accès définissant qui peut accéder à iRODS et d'où, voir ci-dessous | |
irods_cfg_authentication_file |
/var/lib/irods/.irods/.irodsA | le fichier d'authentification pour le client ou le serveur | |
irods_cfg_catalog_provider_hosts |
[ localhost ] |
une liste de FQDN ou d'adresses IP des fournisseurs de services de catalogue | |
irods_cfg_catalog_service_role |
provider | consumer, provider | le rôle du serveur iRODS, un fournisseur accède directement à la base de données de catalogue, un consommateur ne le fait pas |
irods_cfg_client_default_hash_scheme |
irods_cfg_default_hash_scheme |
MD5, SHA256 | schéma de somme de contrôle pour le client ou le serveur |
irods_cfg_client_default_resource |
irods_cfg_default_resource_name mais voir le commentaire |
le nom de la ressource utilisée pour les opérations client ou serveur si aucune n'est spécifiée, sur le serveur, si irods_cfg_default_resource_name est indéfini, 'demoResc' sera utilisé comme défaut. |
|
irods_cfg_client_encryption_algorithm |
irods_cfg_server_control_plane_encryption_algorithm |
algorithme de cryptage fourni par EVP pour le transfert parallèle | |
irods_cfg_client_encryption_key_size |
32 | taille de clé pour le cryptage du transport parallèle | |
irods_cfg_client_encryption_num_hash_rounds |
irods_cfg_server_control_plane_encryption_num_hash_rounds |
nombre de tours de hachage pour le cryptage du transfert parallèle | |
irods_cfg_client_encryption_salt_size |
8 | taille de sel pour le cryptage du transfert parallèle | |
irods_cfg_client_server_negotiation |
request_server_negotiation | none, request_server_negotiation | si une négociation avancée est souhaitée pour le client ou le serveur |
irods_cfg_client_server_policy |
CS_NEG_DONT_CARE | CS_NEG_DONT_CARE, CS_NEG_REFUSE, CS_NEG_REQUIRE | quelle politique SSL pour le client ou le serveur utiliser |
irods_cfg_client_xmsg_port |
le port utilisé par le serveur XMessage | ||
irods_cfg_chown |
true | si le compte de service doit être le propriétaire des fichiers générés | |
irods_cfg_connection_pool_refresh_time |
300 | le nombre de secondes après lequel une connexion existante dans un pool de connexion est rafraîchie | |
irods_cfg_cwd |
irods_cfg_home |
la collection de travail initiale pour l'utilisateur administrateur | |
irods_cfg_database_user_password_salt |
le sel utilisé lors de l'obfuscation des mots de passe utilisateurs stockés dans la base de données de catalogue | ||
irods_cfg_debug |
'' | '' ou toute combinaison de 'CAT', 'RDA' et 'SQL' | niveau de verbosité désiré du journal des débug pour le client ou le serveur. Par exemple, 'CATRDA' signifie inclure les débogages CAT et RDA dans les messages du journal de débug |
irods_cfg_default_dir_mode |
0750 | le mode de permission de fichier octal du système Unix pour un répertoire nouvellement créé | |
irods_cfg_default_file_mode |
0600 | le mode de permission de fichier octal du système Unix pour un fichier nouvellement créé | |
irods_cfg_default_hash_scheme |
SHA256 | MD5, SHA256 | le schéma de hachage utilisé pour vérifier l'intégrité des fichiers |
irods_cfg_default_number_of_transfer_threads |
4 | le nombre maximum de threads autorisés pour le transfert parallèle | |
irods_cfg_default_resource_directory |
le répertoire de coffre-fort par défaut pour la ressource initiale lors de l'installation du serveur | ||
irods_cfg_default_resource_name |
le nom de la ressource initiale lors de l'installation du serveur | ||
irods_cfg_default_temporary_password_lifetime |
120 | le nombre de secondes pendant lesquelles un mot de passe temporaire côté serveur est valide | |
irods_cfg_environment_file |
home/irods_cfg_system_account_name /.irods/irods_environment.json mais voir le commentaire |
l'emplacement où le fichier d'environnement iRODS doit être placé par rapport à irods_cfg_root_dir . Pour la configuration du serveur, le défaut est 'var/lib/irods/.irods/irods_environment.json' . |
|
irods_cfg_environment_variables |
{} | un ensemble de variables d'environnement à ajouter à l'environnement du processus du serveur | |
irods_cfg_federation |
[] | un tableau d'objets de fédération identifiant les zones avec lesquelles cette zone se fédère, voir ci-dessous | |
irods_cfg_for_server |
false mais voir le commentaire | si un serveur est configuré. Si les tâches main ou server sont exécutées, cela est forcé à true . Si les tâches client sont exécutées, cela est forcé à false . |
|
irods_cfg_gsi_server_dn |
null | le nom distinctif du serveur GSI | |
irods_cfg_home |
/irods_cfg_zone_name /home/irods_cfg_zone_user |
la collection personnelle de l'utilisateur administrateur | |
irods_cfg_host |
ansible_inventory_name |
le nom de domaine complètement qualifié du serveur auquel le client ou le serveur se connecte | |
irods_cfg_host_entries |
[] | un tableau d'objets d'entrée d'hôte regroupant les noms et adresses d'hôtes se référant au même hôte, voir ci-dessous | |
irods_cfg_icat |
L'objet de configuration de la base de données ICAT. Voir ci-dessous. Si le serveur configuré n'est pas un IES, cela devrait être null . |
||
irods_cfg_kerberos_name |
Nom distinctif Kerberos pour l'authentification KRB et GSI | ||
irods_cfg_log_level |
5 | 1 - 10 | niveau de verbosité désireux pour l'enregistrement |
irods_cfg_match_hash_policy |
compatible | compatible, strict | indique à iRODS s'il doit utiliser le hachage utilisé par le client ou les données au repos, ou forcer l'utilisation du schéma de hachage par défaut |
irods_cfg_maximum_number_of_concurrent_rule_engine_server_processes |
4 | le nombre maximum de processus de moteur de règles à exécuter | |
irods_cfg_maximum_size_for_single_buffer |
32 | la taille maximale en mébibytes pour un seul tampon | |
irods_cfg_maximum_temporary_password_lifetime |
1000 | le nombre maximum de secondes pendant lesquelles un mot de passe temporaire côté serveur peut être valide | |
irods_cfg_negotiation_key |
TEMPORARY_32byte_negotiation_key | une clé de cryptage de 32 octets partagée par la zone utilisée pour la poignée de main de négociation avancée au début d'une connexion client iRODS | |
irods_cfg_pam_no_extend |
false, true ou null | définir la durée de vie du mot de passe PAM : normalement 8 heures, mais prolongé est de 2 semaines | |
irods_cfg_pam_password_length |
longueur maximale d'un mot de passe PAM | ||
irods_cfg_pam_password_max_time |
durée de vie maximale autorisée pour un mot de passe PAM | ||
irods_cfg_pam_password_min_time |
durée de vie minimale autorisée pour un mot de passe PAM | ||
irods_cfg_plugins_home |
répertoire à utiliser pour les plugins côté client | ||
irods_cfg_re_additional_data_variable_mappings |
[] | un tableau de noms de fichiers (sans l'extension .dvm) qui seront chargés dans l'ordre avant que core.dvm ne soit chargé | |
irods_cfg_re_additional_function_name_mappings |
[] | un tableau de noms de fichiers (sans l'extension .fnm) qui seront chargés dans l'ordre avant que core.fnm ne soit chargé | |
irods_cfg_re_additional_rulebases |
[] | un tableau de noms de fichiers (sans l'extension .re) qui seront chargés dans l'ordre avant que core.re ne soit chargé | |
irods_cfg_root_dir |
/ | Le répertoire racine auquel toutes les dépôts se rapportent | |
irods_cfg_rule_engine_server_sleep_time |
30 | à quelle fréquence le moteur de règles interroge les règles programmées lors de l'inactivité en secondes | |
irods_cfg_schema_validation_base_uri |
https://schemas.irods.org/configuration |
une URI ou 'off' | l'URI contre laquelle la configuration du serveur iRODS est validée. 'off' signifie ignorer la validation |
irods_cfg_server_control_plane_encryption_algorithm |
AES-256-CBC | l'algorithme utilisé pour chiffrer les communications du plan de contrôle | |
irods_cfg_server_control_plane_encryption_num_hash_rounds |
16 | le nombre de tours de hachage utilisés dans les communications du plan de contrôle | |
irods_cfg_server_control_plane_key |
TEMPORARY__32byte_ctrl_plane_key | la clé de cryptage nécessaire pour communiquer avec le plan de contrôle du réseau iRODS, doit faire 32 octets | |
irods_cfg_server_control_plane_port |
1248 | le port sur lequel le plan de contrôle fonctionne | |
irods_cfg_server_control_plane_timeout |
10000 | le nombre de millisecondes avant que le plan de contrôle ne dépasse | |
irods_cfg_server_port_range_end |
20199 | la fin de la plage de ports disponible pour les reconnexions, le transfert parallèle et le transfert RBUDP | |
irods_cfg_server_port_range_start |
20000 | le début de la plage de ports disponible pour les reconnexions, le transfert parallèle et le transfert RBUDP | |
irods_cfg_ssl_ca_certificate_file |
emplacement d'un fichier de certificats CA de confiance au format PEM | ||
irods_cfg_ssl_ca_certificate_path |
emplacement d'un répertoire contenant des certificats CA au format PEM | ||
irods_cfg_ssl_certificate_chain_file |
le fichier contenant la chaîne de certificats du serveur | ||
irods_cfg_ssl_certificate_key_file |
clé privée correspondant au certificat du serveur dans le fichier de chaîne de certificats | ||
irods_cfg_ssl_dh_params_file |
l'emplacement du fichier des paramètres Diffie-Hellman | ||
irods_cfg_ssl_verify_server |
hostname | cert, hostname, none | niveau d'authentification basé sur le certificat du serveur à effectuer |
irods_cfg_system_account_name |
irods | le compte utilisé pour exécuter iRODS | |
irods_cfg_system_group_name |
irods_cfg_system_account_name |
le groupe utilisé pour exécuter iRODS | |
irods_cfg_transfer_buffer_size_for_parallel_transfer |
4 | la taille du tampon en mébibytes pour le transfert parallèle | |
irods_cfg_transfer_chunk_size_for_parallel_transfer |
40 | la taille de morceau en mébibytes pour le transfert parallèle | |
irods_cfg_validate |
true | si les valeurs de configuration doivent être validées lors de la génération des fichiers de configuration | |
irods_cfg_xmsg_host |
le nom d'hôte du serveur XMessage | ||
irods_cfg_xmsg_port |
1279 | le port sur lequel le serveur XMessage fonctionne s'il est activé | |
irods_cfg_zone_auth_scheme |
native | gsi, krb, native, pam | le schéma d'authentification utilisé par irods_cfg_zone_user |
irods_cfg_zone_key |
TEMPORARY_zone_key | le secret partagé utilisé pour l'authentification et l'identification lors de la communication serveur-à-serveur, ne doit pas contenir de traits d'union (- ) |
|
irods_cfg_zone_name |
tempZone | le nom de la zone à laquelle le serveur participe | |
irods_cfg_zone_password |
rods | le mot de passe utilisé pour authentifier irods_cfg_zone_user . |
|
irods_cfg_zone_port |
1247 | le port principal utilisé par la zone pour la communication | |
irods_cfg_zone_user |
rods | le nom de l'utilisateur rodsadmin exécutant cette instance iRODS |
La variable irods_cfg_access_entries
est un tableau d'objets access_entry
. Un objet access_entry
a les champs suivants, tous requis.
Champ | Choix | Commentaires |
---|---|---|
address |
l'adresse IPv4 d'un hôte ou d'un réseau qui peut accéder | |
group |
le groupe iRODS pouvant accéder | |
mask |
le masque de réseau lorsque address est une adresse réseau |
|
user |
l'utilisateur iRODS pouvant accéder |
La variable irods_cfg_environment_variables
est un dictionnaire où la clé est le nom d'une variable d'environnement du processus serveur et la valeur est la valeur de la variable d'environnement.
La variable irods_cfg_federation
est un tableau d'objets federation
. Un objet federation
a les champs suivants, tous requis.
Champ | Choix | Commentaires |
---|---|---|
catalog_provider_hosts |
une liste de FQDN ou d'adresses IP des fournisseurs de services de catalogue dans la zone fédérée | |
negotiation_key |
la clé de cryptage de 32 octets de la zone fédérée | |
zone_key |
le secret partagé d'authentification avec la zone fédérée | |
zone_name |
le nom de la zone fédérée |
La variable irods_cfg_host_entries
est un tableau d'objets host_entry
. Un objet host_entry
a les champs suivants, tous requis.
Champ | Choix | Commentaires |
---|---|---|
address_type |
local, remote | indique si cet hôte est localhost. |
addresses |
un tableau de noms et d'adresses se référant à cet hôte |
La variable irods_cfg_icat
est un objet icat
. Un objet icat
a les champs suivants, aucun d'eux n'est requis.
Champ | Par défaut | Choix | Commentaires |
---|---|---|---|
catalog_database_type |
postgres | mysql, oracle, postgres | le type de base de données utilisé par iRODS pour l'iCAT. voir ci-dessous |
db_host |
localhost | le nom d'hôte du SGBD | |
db_name |
ICAT | le nom de la base de données utilisée comme iCAT | |
db_password |
testpassword | le mot de passe utilisé par db_username pour se connecter à db_name |
|
db_port |
5432 | le port sur lequel le serveur de base de données écoute | |
db_username |
irods | le nom d'utilisateur de la base de données | |
odbc_driver |
null | le pilote ODBC à utiliser, si null , le pilote sera déterminé automatiquement |
Pour catalog_database_type
, seul postgres
a été entièrement testé.
Ensemble de faits
Si l'un des fichiers de configuration iRODS est modifié, le fait irods_cfg_made_changes
sera défini sur true
.
Dépendances
Aucune
Exemples de Playbooks
# Client
- hosts: webdav
vars:
irods_cfg_environment_file: etc/httpd/irods/irods_environment.json
irods_cfg_authentication_file: /etc/httpd/irods/.irodsA
irods_cfg_chown: false
irods_cfg_host: ares.iplantcollaborative.org
irods_cfg_zone_name: iplant
irods_cfg_zone_user: davrods_svc
irods_cfg_home: /iplant
tasks:
- include_role:
name: cyverse-ansible.irods-cfg
tasks_from: "{{ item }}"
with_items:
- client.yml
- init_zone_user.yml
# Fournisseur de services de catalogue
- hosts: irods_catalog_provider
roles:
- role: cyverse-ansible.irods-cfg
vars:
irods_cfg_default_hash_scheme: MD5
irods_cfg_default_number_of_transfer_threads: 16
irods_cfg_default_resource_name: CyVerseRes
irods_cfg_environment_variables:
amqp_host: amqp.cyverse.org
irods_cfg_federation:
- icat_host: irods.tacc.utexas.edu
negotiation_key: "Ne le souhaiteriez-vous pas ! !"
zone_key: crack me
zone_name: tacc
irods_cfg_host_entries:
- address_type: local
addresses:
- ares.iplantcollaborative.org
- data.cyverse.org
- data.iplantcollaborative.org
irods_cfg_icat:
db_host: irods-db.cyverse.org
db_password: secret
db_username: icatuser
irods_cfg_negotiation_key: Devine juste .
irods_cfg_re_additional_rulebases:
- ipc_custom
irods_cfg_server_control_plane_key: "Je ne le dirai pas ."
irods_cfg_server_port_range_end: 20399
irods_cfg_transfer_buffer_size_for_parallel_transfer: 32
irods_cfg_zone_key: secret
irods_cfg_zone_name: iplant
irods_cfg_zone_user: cyverse_admin
# Consommateur de services de catalogue agissant en tant que serveur de ressources
- hosts: irods_resource_server
roles:
- role: cyverse-ansible.irods-cfg
vars:
irods_cfg_default_hash_scheme: MD5
irods_cfg_default_number_of_transfer_threads: 16
irods_cfg_default_resource_directory: /f2/haboob
irods_cfg_default_resource_name: haboobRes
irods_cfg_negotiation_key: Devine juste .
irods_cfg_re_additional_rulebases:
- ipc_custom
irods_cfg_server_control_plane_key: "Je ne le dirai pas ."
irods_cfg_server_port_range_end: 20399
irods_cfg_transfer_buffer_size_for_parallel_transfer: 32
irods_cfg_zone_key: secret
irods_cfg_zone_name: iplant
irods_cfg_zone_user: has_admin
Licence
Voir licence.
Informations sur l'auteur
Tony Edgin tedgin@arizona.edu CyVerse
ansible-galaxy install CyVerse-Ansible.irods_cfg