CyVerse-Ansible.irods_cfg

cyverse-ansible.irods-cfg

Ansible Galaxy Statut des tests

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

À propos du projet

An ansible role for configuring an iRODS server

Installer
ansible-galaxy install CyVerse-Ansible.irods_cfg
Licence
other
Téléchargements
142
Propriétaire