CyVerse-Ansible.irods_cfg

cyverse-ansible.irods-cfg

Ansible Galaxy Estado de Pruebas

Este rol eventualmente podrá usarse para configurar completamente un servidor iRODS una vez que iRODS esté instalado. En este momento, puede mantener los siguientes archivos de configuración.

  • 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

Requisitos

iRODS 4.2.8 está instalado.

Archivos de Tareas

El archivo de tareas main.yml, que se llama por defecto, realiza las mismas tareas que server.yml, es decir, despliega el conjunto de archivos requeridos por un servidor iRODS.

Hay dos archivos de tareas específicos para cada tipo. client.yml despliega los archivos de configuración requeridos por un cliente, por ejemplo, los iCommands. Actualmente, despliega el archivo irods_environment.json. server.yml despliega los archivos de configuración requeridos por un servidor iRODS.

Para cada archivo de configuración de iRODS hay un archivo de tareas correspondiente que despliega solo ese archivo de configuración. irods_environment.yml despliega el archivo de configuración del cliente o servidor, irods_environment.json por defecto. En el directorio etc/irods/, host_access_control_config.yml despliega host_access_control_config.json, hosts_config.yml despliega hosts_config.json, server_config.yml despliega server_config.json, y service_account.yml despliega service_account.config.

Los archivos de tareas setup_irods.yml y init_zone_user.yml no son parte de main.yml ni de ninguno de los archivos de tareas específicos por tipo. setup_irods.yml inicializa la base de datos ICAT antes de llamar a server.yml, y init_zone_user.yml inicializa el usuario de zona iRODS en el host del inventario.

Variables del Rol

Aquí están las variables del rol. Ninguna de ellas es obligatoria.

Variable Por defecto Opciones Comentario
irods_cfg_access_entries [] Una lista de objetos de entrada de acceso que definen quién puede acceder a iRODS y desde dónde, ver más abajo
irods_cfg_authentication_file /var/lib/irods/.irods/.irodsA El archivo de autenticación para el cliente o servidor
irods_cfg_catalog_provider_hosts [ localhost ] Una lista de nombres de dominio completos o direcciones IP de los proveedores de servicios de catálogo
irods_cfg_catalog_service_role provider consumer, provider El rol del servidor iRODS, un productor accede directamente a la base de datos de catálogo, un consumidor no
irods_cfg_client_default_hash_scheme irods_cfg_default_hash_scheme MD5, SHA256 Esquema de chequeo para el cliente o servidor
irods_cfg_client_default_resource irods_cfg_default_resource_name pero ver comentario El nombre del recurso utilizado para las operaciones del cliente o servidor si no se especifica uno
irods_cfg_client_encryption_algorithm irods_cfg_server_control_plane_encryption_algorithm Algoritmo de encriptación proporcionado por EVP para la transferencia paralela
irods_cfg_client_encryption_key_size 32 Tamaño de clave para la encriptación de transporte paralelo
irods_cfg_client_encryption_num_hash_rounds irods_cfg_server_control_plane_encryption_num_hash_rounds Número de rondas de hash para la encriptación de transporte paralelo
irods_cfg_client_encryption_salt_size 8 Tamaño de sal para la encriptación de transporte paralelo
irods_cfg_client_server_negotiation request_server_negotiation none, request_server_negotiation Indica si se desea o no negociación avanzada para el cliente o servidor
irods_cfg_client_server_policy CS_NEG_DONT_CARE CS_NEG_DONT_CARE, CS_NEG_REFUSE, CS_NEG_REQUIRE Qué política SSL usar para el cliente o servidor
irods_cfg_client_xmsg_port El puerto utilizado por el servidor XMessage
irods_cfg_chown true Si hacer o no que la cuenta del servicio sea la dueña de los archivos generados
irods_cfg_connection_pool_refresh_time 300 El número de segundos después del cual se refresca una conexión existente en un pool de conexiones
irods_cfg_cwd irods_cfg_home La colección de trabajo inicial para el usuario admin
irods_cfg_database_user_password_salt La sal utilizada para ofuscar las contraseñas de usuario almacenadas en la base de datos de catálogo
irods_cfg_debug '' '' o cualquier combinación de 'CAT', 'RDA', y 'SQL' Verbosidad deseada del nivel de registro de depuración para el cliente o servidor. por ejemplo, 'CATRDA' significa incluir depuración de CAT y RDA en los mensajes de registro de depuración
irods_cfg_default_dir_mode 0750 El modo de permiso octal del sistema de archivos Unix para un directorio recién creado
irods_cfg_default_file_mode 0600 El modo de permiso octal del sistema de archivos Unix para un archivo recién creado
irods_cfg_default_hash_scheme SHA256 MD5, SHA256 El esquema de hash utilizado para verificar la integridad de archivos
irods_cfg_default_number_of_transfer_threads 4 El número máximo predeterminado de hilos permitidos para la transferencia paralela
irods_cfg_default_resource_directory El directorio Vault predeterminado para el recurso inicial en la instalación del servidor
irods_cfg_default_resource_name El nombre del recurso inicial en la instalación del servidor
irods_cfg_default_temporary_password_lifetime 120 El número predeterminado de segundos que una contraseña temporal en el lado del servidor es válida
irods_cfg_environment_file home/irods_cfg_system_account_name/.irods/irods_environment.json pero ver comentario La ubicación donde debe colocarse el archivo de entorno de iRODS relativo a irods_cfg_root_dir. Para la configuración del servidor, el predeterminado es 'var/lib/irods/.irods/irods_environment.json'.
irods_cfg_environment_variables {} Un conjunto de variables de entorno para agregar al entorno del proceso del servidor
irods_cfg_federation [] Un array de objetos de federación que identifican las zonas con las que esta zona se federan, ver más abajo
irods_cfg_for_server false pero ver comentario Si se está configurando o no un servidor. Si se ejecutan las tareas main o server, esto se fuerza a true. Si se ejecutan las tareas client, esto se fuerza a false.
irods_cfg_gsi_server_dn null El nombre distinguido del servidor GSI
irods_cfg_home /irods_cfg_zone_name/home/irods_cfg_zone_user La colección principal del usuario admin
irods_cfg_host ansible_inventory_name El nombre de dominio completo del servidor al que se conecta el cliente o servidor
irods_cfg_host_entries [] Un array de objetos de entrada de host que agrupan nombres y direcciones de host que se refieren al mismo host, ver más abajo
irods_cfg_icat El objeto de configuración de la base de datos ICAT. Ver más abajo. Si el servidor que se está configurando no es un IES, esto debe ser null.
irods_cfg_kerberos_name Nombre distinguido de Kerberos para la autenticación KRB y GSI
irods_cfg_log_level 5 1 - 10 Verbosidad deseada del registro
irods_cfg_match_hash_policy compatible compatible, strict Indica a iRODS si debe usar el hash utilizado por el cliente o los datos en reposo, o forzar el uso del esquema de hash predeterminado
irods_cfg_maximum_number_of_concurrent_rule_engine_server_processes 4 El número máximo de procesos del motor de reglas para ejecutar
irods_cfg_maximum_size_for_single_buffer 32 El tamaño máximo en mebibytes para un único buffer
irods_cfg_maximum_temporary_password_lifetime 1000 El número máximo de segundos que una contraseña temporal en el lado del servidor puede ser válida
irods_cfg_negotiation_key TEMPORARY_32byte_negotiation_key Una clave de encriptación de 32 bytes compartida por la zona para usar en el apretón de mano de negociación avanzada al comienzo de una conexión de cliente iRODS
irods_cfg_pam_no_extend false, true o null Establece la vida útil de la contraseña PAM: normalmente 8 horas, pero se extiende a 2 semanas
irods_cfg_pam_password_length Longitud máxima de una contraseña PAM
irods_cfg_pam_password_max_time Vida útil máxima permitida de la contraseña PAM
irods_cfg_pam_password_min_time Vida útil mínima permitida de la contraseña PAM
irods_cfg_plugins_home Directorio utilizado para los plugins del lado del cliente
irods_cfg_re_additional_data_variable_mappings [] Un array de nombres de archivos (sin la extensión .dvm) que se cargarán en orden antes de que se cargue core.dvm
irods_cfg_re_additional_function_name_mappings [] Un array de nombres de archivos (sin la extensión .fnm) que se cargarán en orden antes de que se cargue core.fnm
irods_cfg_re_additional_rulebases [] Un array de nombres de archivos (sin la extensión .re) que se cargarán en orden antes de que se cargue core.re
irods_cfg_root_dir / El directorio raíz donde todas las deudas son relativas
irods_cfg_rule_engine_server_sleep_time 30 Qué tan frecuentemente el motor de reglas busca reglas programadas cuando está inactivo, en segundos
irods_cfg_schema_validation_base_uri https://schemas.irods.org/configuration un URI o 'off' El URI contra el cual se valida la configuración del servidor iRODS. 'off' significa omitir la validación
irods_cfg_server_control_plane_encryption_algorithm AES-256-CBC El algoritmo utilizado para encriptar las comunicaciones del plano de control
irods_cfg_server_control_plane_encryption_num_hash_rounds 16 El número de rondas de hash utilizadas en las comunicaciones del plano de control
irods_cfg_server_control_plane_key TEMPORARY__32byte_ctrl_plane_key La clave de encriptación necesaria para comunicarse con el plano de control de la red iRODS, debe ser de 32 bytes
irods_cfg_server_control_plane_port 1248 El puerto en el cual opera el plano de control
irods_cfg_server_control_plane_timeout 10000 El número de milisegundos antes de que el plano de control se agote
irods_cfg_server_port_range_end 20199 El final del rango de Puerto disponible para reconexiones, transferencia paralela y transferencia RBUDP
irods_cfg_server_port_range_start 20000 El inicio del rango de puerto disponible para reconexiones, transferencia paralela y transferencia RBUDP
irods_cfg_ssl_ca_certificate_file Ubicación de un archivo de certificados CA de confianza en formato PEM
irods_cfg_ssl_ca_certificate_path Ubicación de un directorio que contiene certificados CA en formato PEM
irods_cfg_ssl_certificate_chain_file El archivo que contiene la cadena de certificados del servidor
irods_cfg_ssl_certificate_key_file Clave privada correspondiente al certificado del servidor en el archivo de la cadena de certificados
irods_cfg_ssl_dh_params_file La ubicación del archivo de parámetros de Diffie-Hellman
irods_cfg_ssl_verify_server hostname cert, hostname, none Nivel de autenticación basada en certificados del servidor a realizar
irods_cfg_system_account_name irods La cuenta utilizada para ejecutar iRODS
irods_cfg_system_group_name irods_cfg_system_account_name El grupo utilizado para ejecutar iRODS
irods_cfg_transfer_buffer_size_for_parallel_transfer 4 El tamaño del buffer en mebibytes para la transferencia paralela
irods_cfg_transfer_chunk_size_for_parallel_transfer 40 El tamaño del fragmento en mebibytes para la transferencia paralela
irods_cfg_validate true Si los valores de configuración deben ser validados cuando se generan los archivos de configuración
irods_cfg_xmsg_host El nombre del host del servidor XMessage
irods_cfg_xmsg_port 1279 El puerto en el cual opera el servidor XMessage, si está habilitado
irods_cfg_zone_auth_scheme native gsi, krb, native, pam Esquema de autenticación utilizado por irods_cfg_zone_user
irods_cfg_zone_key TEMPORARY_zone_key El secreto compartido utilizado para la autenticación e identificación en la comunicación servidor a servidor, no puede contener guiones (-)
irods_cfg_zone_name tempZone El nombre de la zona en la que participa el servidor
irods_cfg_zone_password rods La contraseña utilizada para autenticar irods_cfg_zone_user.
irods_cfg_zone_port 1247 El puerto principal utilizado por la zona para la comunicación
irods_cfg_zone_user rods El nombre del usuario rodsadmin que ejecuta esta instancia de iRODS

La variable irods_cfg_access_entries es un array de objetos access_entry. Un objeto access_entry tiene los siguientes campos, todos son obligatorios.

Campo Opciones Comentarios
address La dirección IPv4 de un host o red que puede acceder
group El grupo de iRODS que puede acceder
mask La máscara de red cuando address es una dirección de red
user El usuario de iRODS que puede acceder

La variable irods_cfg_environment_variables es un diccionario donde la clave es el nombre de una variable de entorno del proceso del servidor, y el valor es el valor de la variable de entorno.

La variable irods_cfg_federation es un array de objetos federation. Un objeto federation tiene los siguientes campos, todos son obligatorios.

Campo Opciones Comentarios
catalog_provider_hosts Una lista de nombres de dominio completos o direcciones IP de los proveedores de servicios de catálogo en la zona federada
negotiation_key La clave de encriptación de 32 bytes de la zona federada
zone_key El secreto compartido de autenticación con la zona federada
zone_name El nombre de la zona federada

La variable irods_cfg_host_entries es un array de objetos host_entry. Un objeto host_entry tiene los siguientes campos, todos son obligatorios.

Campo Opciones Comentarios
address_type local, remote Indica si este host es local
addresses Un array de nombres y direcciones que se refieren a este host

La variable irods_cfg_icat es un objeto icat. Un objeto icat tiene los siguientes campos, ninguno de ellos es obligatorio.

Campo Por defecto Opciones Comentarios
catalog_database_type postgres mysql, oracle, postgres El tipo de base de datos que iRODS está usando para el iCAT. ver más abajo
db_host localhost El nombre del host del DBMS
db_name ICAT El nombre de la base de datos utilizada como el iCAT
db_password testpassword La contraseña utilizada por db_username para conectarse a db_name
db_port 5432 El puerto en el cual el servidor de base de datos está escuchando
db_username irods El nombre de usuario de la base de datos
odbc_driver null El controlador ODBC a usar, si es null el controlador se determinará automáticamente

Para catalog_database_type, solo postgres ha sido completamente probado.

Conjunto de Hechos

Si se cambian cualquiera de los archivos de configuración de iRODS, el hecho irods_cfg_made_changes se establecerá en true.

Dependencias

Ninguna

Ejemplos de Playbooks

# Cliente
- 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

# Proveedor de Servicio de Catálogo
- 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: "¡No lo desearías!                !"
            zone_key: rómpeme
            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: secreto
          db_username: icatuser
        irods_cfg_negotiation_key: Solo adivínalo                  .
        irods_cfg_re_additional_rulebases:
          - ipc_custom
        irods_cfg_server_control_plane_key: "No lo diré                ."
        irods_cfg_server_port_range_end: 20399
        irods_cfg_transfer_buffer_size_for_parallel_transfer: 32
        irods_cfg_zone_key: secreto
        irods_cfg_zone_name: iplant
        irods_cfg_zone_user: cyverse_admin

# Consumidor del Servicio de Catálogo Actuando como un Servidor de Recursos
- 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: Solo adivínalo                  .
        irods_cfg_re_additional_rulebases:
          - ipc_custom
        irods_cfg_server_control_plane_key: "No lo diré                ."
        irods_cfg_server_port_range_end: 20399
        irods_cfg_transfer_buffer_size_for_parallel_transfer: 32
        irods_cfg_zone_key: secreto
        irods_cfg_zone_name: iplant
        irods_cfg_zone_user: has_admin

Licencia

Ver licencia.

Información del Autor

Tony Edgin
tedgin@arizona.edu
CyVerse

Acerca del proyecto

An ansible role for configuring an iRODS server

Instalar
ansible-galaxy install CyVerse-Ansible.irods_cfg
Licencia
other
Descargas
142