irods_cfg
cyverse-ansible.irods-cfg
Эта роль в конечном итоге будет использоваться для полной настройки сервера 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.yml
и init_zone_user.yml
не входят в состав main.yml
или любого уровня задач. setup_irods.yml
инициализирует базу данных ICAT перед вызовом server.yml
, а 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 ] |
Список полных доменных имен или 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 |
Директория Vault по умолчанию для начального ресурса при установке сервера | ||
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 но см. комментарий | Нужно ли настраивать сервер. Если выполняются задачи main или server , это принудительно устанавливается в 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 DB. См. ниже. Если настраиваемый сервер не является IES, это должно быть null . |
||
irods_cfg_kerberos_name |
Отличительное имя Kerberos для KRB и GSI аутентификации | ||
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 | Максимальный размер в мебибайтах для одного буфера | |
irods_cfg_maximum_temporary_password_lifetime |
1000 | Максимальное количество секунд, в течение которых временный пароль на стороне сервера может быть действительным | |
irods_cfg_negotiation_key |
TEMPORARY_32byte_negotiation_key | 32-байтовый ключ шифрования, общий для зоны, используемый в расширенной переговорах при начале соединения клиента с iRODS | |
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 |
[] | Массив имен файлов (без расширения .dvm), которые будут загружены перед загрузкой core.dvm | |
irods_cfg_re_additional_function_name_mappings |
[] | Массив имен файлов (без расширения .fnm), которые будут загружены перед загрузкой core.fnm | |
irods_cfg_re_additional_rulebases |
[] | Массив имен файлов (без расширения .re), которые будут загружены перед загрузкой core.re | |
irods_cfg_root_dir |
/ | Корневая директория, относительно которой находятся все депозиты | |
irods_cfg_rule_engine_server_sleep_time |
30 | Как часто сервер правил опрашивает запланированные правила, когда находится в спокойном состоянии, в секундах | |
irods_cfg_schema_validation_base_uri |
https://schemas.irods.org/configuration |
URI или 'off' | URI, по которому будет проверена конфигурация сервера iRODS. '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 |
Расположение файла доверенных сертификатов CA в формате PEM | ||
irods_cfg_ssl_ca_certificate_path |
Расположение каталога, содержащего CA сертификаты в формате PEM | ||
irods_cfg_ssl_certificate_chain_file |
Файл, содержащий цепочку сертификатов сервера | ||
irods_cfg_ssl_certificate_key_file |
Личный ключ, соответствующий сертификату сервера в файле цепочки сертификатов | ||
irods_cfg_ssl_dh_params_file |
Местоположение файла параметров Диффи-Хеллмана | ||
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 | Размер буфера в мебибайтах для параллельной передачи | |
irods_cfg_transfer_chunk_size_for_parallel_transfer |
40 | Размер блока в мебибайтах для параллельной передачи | |
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 | Имя пользователя rodsadmin, запускающего этот экземпляр iRODS |
Переменная 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 |
Список полных доменных имен или 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 | Имя хоста СУБД | |
db_name |
ICAT | Имя базы данных, используемой в качестве iCAT | |
db_password |
testpassword | Пароль, используемый db_username для подключения к db_name |
|
db_port |
5432 | Порт, на котором работает сервер базы данных | |
db_username |
irods | Имя пользователя базы данных | |
odbc_driver |
null | ODBC-драйвер для использования, если 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
Лицензия
Смотрите лицензию.
Информация об авторе
Тони Эджин
tedgin@arizona.edu
CyVerse
ansible-galaxy install CyVerse-Ansible/ansible-irods-cfg