CyVerse-Ansible.irods_cfg

cyverse-ansible.irods-cfg

Ansible Galaxy Test Status

这个角色最终可以完全配置安装后的 iRODS 服务器。目前,它可以维护以下配置文件。

  • 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

要求

必须安装 iRODS 4.2.8。

任务文件

默认调用的 main.yml 任务文件执行与 server.yml 相同的任务,也就是部署 iRODS 服务器所需的文件集合。

有两个特定层次的任务文件。client.yml 部署客户端所需的配置文件,例如 iCommands。目前,它会部署 irods_environment.json 文件。server.yml 部署 iRODS 服务器所需的配置文件。

对于每个 iRODS 配置文件,有一个相应的任务文件仅部署该配置文件。irods_environment.yml 部署客户端或服务器配置文件,默认是 _irods_environment.json_。在 etc/irods/ 目录下,host_access_control_config.yml 部署 host_access_control_config.json,hosts_config.yml 部署 hosts_config.json,server_config.yml 部署 server_config.json,service_account.yml 部署 service_account.config。

setup_irods.ymlinit_zone_user.yml 任务文件不是 main.yml 或任何特定层次任务文件的一部分。setup_irods.yml 在调用 server.yml 之前初始化 ICAT 数据库,init_zone_user.yml 在库存主机上初始化 iRODS 区域用户。

角色变量

以下是角色变量。没有任何一个是必需的。

变量 默认值 选项 备注
irods_cfg_access_entries [] 定义谁可以访问 iRODS 和访问来源的访问条目对象列表,见下文
irods_cfg_authentication_file /var/lib/irods/.irods/.irodsA 客户端或服务器的认证文件
irods_cfg_catalog_provider_hosts [ localhost ] 目录服务提供者的 FQDN 或 IP 地址列表
irods_cfg_catalog_service_role provider consumer, provider iRODS 服务器的角色,提供者直接访问目录数据库,消费者则不访问
irods_cfg_client_default_hash_scheme irods_cfg_default_hash_scheme MD5, SHA256 客户端或服务器的校验和方案
irods_cfg_client_default_resource irods_cfg_default_resource_name 但见备注 客户端或服务器操作时,如果没有指定,将使用的资源名称,在服务器上如果 irods_cfg_default_resource_name 没有定义,将使用 'demoResc' 作为默认值。
irods_cfg_client_encryption_algorithm irods_cfg_server_control_plane_encryption_algorithm 并行传输的 EVP 提供的加密算法
irods_cfg_client_encryption_key_size 32 并行传输加密的密钥大小
irods_cfg_client_encryption_num_hash_rounds irods_cfg_server_control_plane_encryption_num_hash_rounds 并行传输加密的哈希轮次数
irods_cfg_client_encryption_salt_size 8 并行传输加密的盐值大小
irods_cfg_client_server_negotiation request_server_negotiation none, request_server_negotiation 是否需要客户端或服务器的高级协商
irods_cfg_client_server_policy CS_NEG_DONT_CARE CS_NEG_DONT_CARE, CS_NEG_REFUSE, CS_NEG_REQUIRE 客户端或服务器使用的 SSL 策略
irods_cfg_client_xmsg_port XMessage 服务器使用的端口
irods_cfg_chown true 是否使服务账户成为生成文件的持有者
irods_cfg_connection_pool_refresh_time 300 连接池中现有连接被刷新之前的秒数
irods_cfg_cwd irods_cfg_home 管理用户的初始工作集合
irods_cfg_database_user_password_salt 在目录数据库中加密用户密码时使用的盐
irods_cfg_debug '' '' 或任何组合的 'CAT', 'RDA' 和 'SQL' 客户端或服务器所需的调试日志级别的详细程度,例如,'CATRDA' 表示在调试日志消息中包括 CAT 和 RDA 的调试。
irods_cfg_default_dir_mode 0750 新创建目录的 Unix 文件系统八进制权限模式
irods_cfg_default_file_mode 0600 新创建文件的 Unix 文件系统八进制权限模式
irods_cfg_default_hash_scheme SHA256 MD5, SHA256 用于文件完整性检查的哈希方案
irods_cfg_default_number_of_transfer_threads 4 并行传输允许的默认最大线程数
irods_cfg_default_resource_directory 服务器安装时初始资源的默认仓库目录
irods_cfg_default_resource_name 服务器安装时初始资源的名称
irods_cfg_default_temporary_password_lifetime 120 服务器端临时密码的有效秒数
irods_cfg_environment_file home/irods_cfg_system_account_name/.irods/irods_environment.json 但见备注 iRODS 环境文件相对于 irods_cfg_root_dir 应放置的位置。对于服务器配置,默认是 'var/lib/irods/.irods/irods_environment.json'
irods_cfg_environment_variables {} 要添加到服务器进程环境的环境变量集合
irods_cfg_federation [] 标识此区域与之联邦的区域的联邦对象数组,见下文
irods_cfg_for_server false 但见备注 是否正在配置服务器。如果运行 mainserver 任务,则强制为 true。如果运行 client 任务,则强制为 false
irods_cfg_gsi_server_dn null GSI 服务器的区分名称
irods_cfg_home /irods_cfg_zone_name/home/irods_cfg_zone_user 管理用户的主集合
irods_cfg_host ansible_inventory_name 客户端或服务器连接的服务器的完全合格域名
irods_cfg_host_entries [] 一个数组的主机条目对象,分组主机名称和指向同一主机的地址,见下文
irods_cfg_icat ICAT 数据库配置对象。见下文。如果配置的服务器不是 IES,则应为 null
irods_cfg_kerberos_name 用于 KRB 和 GSI 认证的 Kerberos 区别名称
irods_cfg_log_level 5 1 - 10 所需的日志详细程度
irods_cfg_match_hash_policy compatible compatible, strict 指示 iRODS 是否使用客户端使用的哈希或静态数据的哈希,或强制使用默认哈希方案
irods_cfg_maximum_number_of_concurrent_rule_engine_server_processes 4 要运行的最大规则引擎进程数
irods_cfg_maximum_size_for_single_buffer 32 单个缓冲区的最大大小(以 MiB 为单位)
irods_cfg_maximum_temporary_password_lifetime 1000 服务器端临时密码可以有效的最大秒数
irods_cfg_negotiation_key TEMPORARY_32byte_negotiation_key 用于在 iRODS 客户端连接开始时进行高级协商握手的共享 32 字节加密密钥
irods_cfg_pam_no_extend false, true 或 null 设置 PAM 密码有效期:通常为 8 小时,但扩展为 2 周
irods_cfg_pam_password_length PAM 密码的最大长度
irods_cfg_pam_password_max_time PAM 密码的最大允许有效期
irods_cfg_pam_password_min_time PAM 密码的最小允许有效期
irods_cfg_plugins_home 客户端插件的使用目录
irods_cfg_re_additional_data_variable_mappings [] 在 core.dvm 加载之前,按顺序加载的文件名数组(不包含 .dvm 后缀)
irods_cfg_re_additional_function_name_mappings [] 在 core.fnm 加载之前,按顺序加载的文件名数组(不包含 .fnm 后缀)
irods_cfg_re_additional_rulebases [] 在 core.re 加载之前,按顺序加载的文件名数组(不包含 .re 后缀)
irods_cfg_root_dir / 所有存放的根目录
irods_cfg_rule_engine_server_sleep_time 30 空闲时规则引擎轮询调度规则的频率(秒)
irods_cfg_schema_validation_base_uri https://schemas.irods.org/configuration a URI 或 'off' 用于验证 iRODS 服务器配置的 URI。 'off' 意味着跳过验证
irods_cfg_server_control_plane_encryption_algorithm AES-256-CBC 用于加密控制平面通信的算法
irods_cfg_server_control_plane_encryption_num_hash_rounds 16 在控制平面通信中使用的哈希轮次
irods_cfg_server_control_plane_key TEMPORARY__32byte_ctrl_plane_key 与 iRODS 网格控制平面通信所需的加密密钥,必须为 32 字节
irods_cfg_server_control_plane_port 1248 控制平面运行的端口
irods_cfg_server_control_plane_timeout 10000 控制平面超时前的毫秒数
irods_cfg_server_port_range_end 20199 可用于重新连接、并行传输和 RBUDP 传输的端口范围结束
irods_cfg_server_port_range_start 20000 可用于重新连接、并行传输和 RBUDP 传输的端口范围开始
irods_cfg_ssl_ca_certificate_file PEM 格式的受信任 CA 证书文件位置
irods_cfg_ssl_ca_certificate_path 包含 PEM 格式 CA 证书的目录位置
irods_cfg_ssl_certificate_chain_file 包含服务器证书链的文件
irods_cfg_ssl_certificate_key_file 证书链文件中与服务器证书相对应的私钥
irods_cfg_ssl_dh_params_file Diffie-Hellman 参数文件位置
irods_cfg_ssl_verify_server hostname cert, hostname, none 执行的服务器证书基于的身份验证级别
irods_cfg_system_account_name irods 用于运行 iRODS 的账户
irods_cfg_system_group_name irods_cfg_system_account_name 用于运行 iRODS 的组
irods_cfg_transfer_buffer_size_for_parallel_transfer 4 并行传输的缓冲区大小(以 MiB 为单位)
irods_cfg_transfer_chunk_size_for_parallel_transfer 40 并行传输的块大小(以 MiB 为单位)
irods_cfg_validate true 在生成配置文件时是否应验证配置值
irods_cfg_xmsg_host XMessage 服务器的主机名
irods_cfg_xmsg_port 1279 如果启用,XMessage 服务器运行的端口
irods_cfg_zone_auth_scheme native gsi, krb, native, pam irods_cfg_zone_user 使用的认证方案
irods_cfg_zone_key TEMPORARY_zone_key 服务器间通信中用于身份验证和识别的共享密钥,不能包含连字符(-
irods_cfg_zone_name tempZone 服务器参与的区域名称
irods_cfg_zone_password rods 用于身份验证 irods_cfg_zone_user 的密码
irods_cfg_zone_port 1247 区域用于通信的主要端口
irods_cfg_zone_user rods 运行此 iRODS 实例的 rodsadmin 用户名

irods_cfg_access_entries 变量是 access_entry 对象的数组。access_entry 对象有以下字段,全部是必需的。

字段 选项 注释
address 能够访问的主机或网络的 IPv4 地址
group 可以访问的 iRODS 组
mask address 是网络地址时的网络掩码
user 能够访问的 iRODS 用户

irods_cfg_environment_variables 变量是一个字典,键是服务器进程环境变量的名称,值是环境变量的值。

irods_cfg_federation 变量是一个 federation 对象的数组。federation 对象有以下字段,全部是必需的。

字段 选项 注释
catalog_provider_hosts 联邦区域内目录服务提供者的 FQDN 或 IP 地址列表
negotiation_key 联邦区域的 32 字节加密密钥
zone_key 与联邦区域共同的身份验证秘密
zone_name 联邦区域的名称

irods_cfg_host_entries 变量是一个 host_entry 对象的数组。host_entry 对象有以下字段,全部是必需的。

字段 选项 注释
address_type local, remote 指示此主机是否为本地主机。
addresses 指向此主机的名称和地址的数组

irods_cfg_icat 变量是一个 icat 对象。icat 对象有以下字段,没有一个是必需的。

字段 默认值 选项 注释
catalog_database_type postgres mysql, oracle, postgres iRODS 使用的 iCAT 的数据库类型。见下文
db_host localhost DBMS 的主机名
db_name ICAT 用作 iCAT 的数据库名称
db_password testpassword db_username 连接到 db_name 时使用的密码
db_port 5432 数据库服务器正在监听的端口
db_username irods 数据库用户名
odbc_driver null 如果为 null,驱动程序将自动确定

对于 catalog_database_type,只有 postgres 已经过全面测试。

事实集

如果任何 iRODS 配置文件被更改,则事实 irods_cfg_made_changes 将设置为 true

依赖性

示例剧本

# 客户端
- 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

# 目录服务提供者
- 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: "Don't you wish!                !"
            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: Just guess it                  .
        irods_cfg_re_additional_rulebases:
          - ipc_custom
        irods_cfg_server_control_plane_key: "I'm not telling                ."
        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

# 作为资源服务器的目录服务消费者
- 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: Just guess it                  .
        irods_cfg_re_additional_rulebases:
          - ipc_custom
        irods_cfg_server_control_plane_key: "I'm not telling                ."
        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

许可证

license

作者信息

Tony Edgin
tedgin@arizona.edu
CyVerse

关于项目

An ansible role for configuring an iRODS server

安装
ansible-galaxy install CyVerse-Ansible.irods_cfg
许可证
other
下载
142