CyVerse-Ansible.irods_cfg

cyverse-ansible.irods-cfg

Ansible Galaxy Test Status

Diese Rolle kann verwendet werden, um einen iRODS-Server vollständig zu konfigurieren, nachdem iRODS installiert ist. Momentan kann sie die folgenden Konfigurationsdateien verwalten.

  • 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

Anforderungen

iRODS 4.2.8 muss installiert sein.

Aufgaben Dateien

Die Standard-Aufgabendatei main.yml führt dieselben Aufgaben aus wie server.yml, d.h. sie installiert die notwendigen Dateien für einen iRODS-Server.

Es gibt zwei spezielle Aufgabendateien. client.yml installiert die Konfigurationsdateien, die ein Client benötigt, z.B. die iCommands. Derzeit wird die Datei irods_environment.json installiert. server.yml installiert die Konfigurationsdateien für einen iRODS-Server.

Für jede iRODS-Konfigurationsdatei gibt es eine entsprechende Aufgabendatei, die nur diese Konfigurationsdatei installiert. irods_environment.yml installiert die Konfigurationsdatei für den Client oder Server, standardmäßig irods_environment.json. Im Verzeichnis etc/irods/ installiert host_access_control_config.yml die host_access_control_config.json, hosts_config.yml installiert hosts_config.json, server_config.yml installiert server_config.json und service_account.yml installiert service_account.config.

Die Aufgabendateien setup_irods.yml und init_zone_user.yml sind nicht Teil von main.yml oder den speziellen Aufgabendateien. setup_irods.yml initialisiert die ICAT-Datenbank, bevor server.yml aufgerufen wird, und init_zone_user.yml initialisiert den iRODS-Zonentuser im Inventar-Host.

Rollenvariablen

Hier sind die Rollenvariablen. Keine von ihnen sind Pflicht.

Variable Standard Optionen Kommentar
irods_cfg_access_entries [] Eine Liste von Zugriffsobjekten, die definieren, wer auf iRODS zugreifen kann und von wo, siehe unten
irods_cfg_authentication_file /var/lib/irods/.irods/.irodsA Die Authentifizierungsdatei für den Client oder Server
irods_cfg_catalog_provider_hosts [ localhost ] Eine Liste von FQDNs oder IP-Adressen der Katalogdienstanbieter
irods_cfg_catalog_service_role provider consumer, provider Die Rolle des iRODS-Servers; ein Provider greift direkt auf die Katalogdatenbank zu, ein Consumer nicht
irods_cfg_client_default_hash_scheme irods_cfg_default_hash_scheme MD5, SHA256 Prüfziffer-Schema für den Client oder Server
irods_cfg_client_default_resource irods_cfg_default_resource_name aber siehe Kommentar Der Name der Ressource, die für Client- oder Server-Operationen verwendet wird, falls nicht spezifiziert
irods_cfg_client_encryption_algorithm irods_cfg_server_control_plane_encryption_algorithm EVP-vorgeschlagenes Verschlüsselungsverfahren für parallelen Transport
irods_cfg_client_encryption_key_size 32 Schlüssellänge für die parallele Transportverschlüsselung
irods_cfg_client_encryption_num_hash_rounds irods_cfg_server_control_plane_encryption_num_hash_rounds Anzahl der Hash-Runden für parallele Transportverschlüsselung
irods_cfg_client_encryption_salt_size 8 Saltlänge für die parallele Transportverschlüsselung
irods_cfg_client_server_negotiation request_server_negotiation none, request_server_negotiation Ob eine erweiterte Verhandlung für Client oder Server gewünscht wird
irods_cfg_client_server_policy CS_NEG_DONT_CARE CS_NEG_DONT_CARE, CS_NEG_REFUSE, CS_NEG_REQUIRE Welche SSL-Richtlinie Clients oder Server verwenden sollen
irods_cfg_client_xmsg_port Der Port, den der XMessage-Server verwendet
irods_cfg_chown true Ob das Dienstkonto der Besitzer der generierten Dateien sein soll
irods_cfg_connection_pool_refresh_time 300 Anzahl der Sekunden, nach denen eine bestehende Verbindung im Verbindungs-Pool aktualisiert wird
irods_cfg_cwd irods_cfg_home Das ursprüngliche Arbeitsverzeichnis für den Admin-Benutzer
irods_cfg_database_user_password_salt Der Salt, der beim Verschleiern von Benutzerpasswörtern in der Katalogdatenbank verwendet wird
irods_cfg_debug '' '' oder jede Kombination von 'CAT', 'RDA' und 'SQL' Gewünschte Detailgenauigkeit des Debug-Loglevels für Client oder Server, z.B. 'CATRDA' bedeutet, dass CAT und RDA-Fehlerprotokollierung in den Debug-Logmeldungen enthalten ist
irods_cfg_default_dir_mode 0750 Der Unix-Dateisystem-Oktalberechtigungsmodus für ein neu erstelltes Verzeichnis
irods_cfg_default_file_mode 0600 Der Unix-Dateisystem-Oktalberechtigungsmodus für eine neu erstellte Datei
irods_cfg_default_hash_scheme SHA256 MD5, SHA256 Das Hash-Schema, das für die Integritätsüberprüfung von Dateien verwendet wird
irods_cfg_default_number_of_transfer_threads 4 Die standardmäßige maximale Anzahl von Threads, die für parallelen Transfer zugelassen sind
irods_cfg_default_resource_directory Das Standardverzeichnis für die erste Ressource bei der Serverinstallation
irods_cfg_default_resource_name Der Name der ersten Ressource bei der Serverinstallation
irods_cfg_default_temporary_password_lifetime 120 Die Standardzahl von Sekunden, für die ein serverseitiges temporäres Passwort gültig ist
irods_cfg_environment_file home/irods_cfg_system_account_name/.irods/irods_environment.json aber siehe Kommentar Der Ort, an dem die iRODS-Umgebungsdatei relativ zu irods_cfg_root_dir platziert werden soll. Für die Serverkonfiguration ist der Standardwert 'var/lib/irods/.irods/irods_environment.json'.
irods_cfg_environment_variables {} Eine Menge von Umgebungsvariablen, die zum Serverprozessumfeld hinzugefügt werden
irods_cfg_federation [] Ein Array von Föderationsobjekten, die die Zonen identifizieren, mit denen diese Zone föderiert ist, siehe unten
irods_cfg_for_server false aber siehe Kommentar Ob ein Server konfiguriert wird oder nicht. Wenn die main- oder server-Aufgaben ausgeführt werden, wird dies auf true gesetzt. Wenn die client-Aufgaben ausgeführt werden, wird dies auf false gesetzt.
irods_cfg_gsi_server_dn null Der Distinguished Name des GSI-Servers
irods_cfg_home /irods_cfg_zone_name/home/irods_cfg_zone_user Die Heimatkollektion des Admin-Benutzers
irods_cfg_host ansible_inventory_name Der vollqualifizierte Domainname des Servers, zu dem der Client oder Server eine Verbindung herstellt
irods_cfg_host_entries [] Ein Array von Host-Eintragobjekten, die Hostnamen und Adressen referenzieren, die sich auf denselben Host beziehen
irods_cfg_icat Das ICAT-Datenbank-Konfigurationsobjekt. Siehe unten. Wenn der konfigurierte Server kein IES ist, sollte dies null sein.
irods_cfg_kerberos_name Kerberos-Distinguished Name für KRB- und GSI-Authentifizierung
irods_cfg_log_level 5 1 - 10 Gewünschte Detailgenauigkeit des Loggings
irods_cfg_match_hash_policy compatible compatible, strict Gibt iRODS an, ob der für den Client verwendete Hash oder die Daten im Ruhezustand verwendet werden sollen oder ob das Standard-Hash-Schema erzwungen werden soll
irods_cfg_maximum_number_of_concurrent_rule_engine_server_processes 4 Die maximale Anzahl von Regel-Engine-Prozessen, die ausgeführt werden können
irods_cfg_maximum_size_for_single_buffer 32 Die maximale Größe in Mebibytes für einen einzelnen Puffer
irods_cfg_maximum_temporary_password_lifetime 1000 Die maximale Anzahl von Sekunden, in denen ein serverseitiges temporäres Passwort gültig sein kann
irods_cfg_negotiation_key TEMPORARY_32byte_negotiation_key Ein 32-Byte-Verschlüsselungsschlüssel, der von der Zone für die Verwendung im erweiterten Verhandlungs-Handschlag zu Beginn einer iRODS-Client-Verbindung geteilt wird
irods_cfg_pam_no_extend false, true oder null Setzt die PAM-Passwortlebensdauer: normalerweise 8 Stunden, aber verlängert auf 2 Wochen
irods_cfg_pam_password_length Maximale Länge eines PAM-Passworts
irods_cfg_pam_password_max_time Maximale erlaubte Lebensdauer eines PAM-Passworts
irods_cfg_pam_password_min_time Minimale erlaubte Lebensdauer eines PAM-Passworts
irods_cfg_plugins_home Verzeichnis für die Client-seitigen Plugins
irods_cfg_re_additional_data_variable_mappings [] Ein Array von Dateinamen (ohne die .dvm-Erweiterung), die in der Reihenfolge geladen werden, bevor core.dvm geladen wird
irods_cfg_re_additional_function_name_mappings [] Ein Array von Dateinamen (ohne die .fnm-Erweiterung), die in der Reihenfolge geladen werden, bevor core.fnm geladen wird
irods_cfg_re_additional_rulebases [] Ein Array von Dateinamen (ohne die .re-Erweiterung), die in der Reihenfolge geladen werden, bevor core.re geladen wird
irods_cfg_root_dir / Das Wurzelverzeichnis, auf das sich alle Ablagen beziehen
irods_cfg_rule_engine_server_sleep_time 30 Wie häufig die Regel-Engine nach geplanten Regeln fragt, wenn sie im Leerlauf ist, in Sekunden
irods_cfg_schema_validation_base_uri https://schemas.irods.org/configuration eine URI oder 'off' Die URI, gegen die die iRODS-Serverkonfiguration validiert wird. 'off' bedeutet, dass die Validierung übersprungen wird
irods_cfg_server_control_plane_encryption_algorithm AES-256-CBC Das Algorithmus, das zur Verschlüsselung der Kommunikationskontrolle verwendet wird
irods_cfg_server_control_plane_encryption_num_hash_rounds 16 Die Anzahl von Hash-Runden, die in den Kontrollkommunikationen verwendet werden
irods_cfg_server_control_plane_key TEMPORARY__32byte_ctrl_plane_key Der Verschlüsselungsschlüssel, der für die Kommunikation mit der iRODS-Grid-Steuerung erforderlich ist; muss 32 Bytes betragen
irods_cfg_server_control_plane_port 1248 Der Port, an dem die Steuerungsebene arbeitet
irods_cfg_server_control_plane_timeout 10000 Die Anzahl der Millisekunden, bevor die Steuerungsebene zeitlich ausläuft
irods_cfg_server_port_range_end 20199 Das Ende des verfügbaren Portbereichs für Wiederverbindungen, parallelen Transport und RBUDP-Transfer
irods_cfg_server_port_range_start 20000 Der Beginn des verfügbaren Portbereichs für Wiederverbindungen, parallelen Transport und RBUDP-Transfer
irods_cfg_ssl_ca_certificate_file Ort einer Datei mit vertrauenswürdigen CA-Zertifikaten im PEM-Format
irods_cfg_ssl_ca_certificate_path Ort eines Verzeichnisses mit CA-Zertifikaten im PEM-Format
irods_cfg_ssl_certificate_chain_file Die Datei, die die Zertifikatskette des Servers enthält
irods_cfg_ssl_certificate_key_file Privat-Schlüssel, der dem Zertifikat des Servers in der Zertifikatskette entspricht
irods_cfg_ssl_dh_params_file Ort der Datei mit den Diffie-Hellman-Parametern
irods_cfg_ssl_verify_server hostname cert, hostname, none Grad der Authentifizierung des Serverzertifikats
irods_cfg_system_account_name irods Das Konto, unter dem iRODS ausgeführt wird
irods_cfg_system_group_name irods_cfg_system_account_name Die Gruppe, die iRODS ausführt
irods_cfg_transfer_buffer_size_for_parallel_transfer 4 Die Pufferspeichergröße in Mebibytes für parallelen Transport
irods_cfg_transfer_chunk_size_for_parallel_transfer 40 Die Chunkgröße in Mebibytes für parallelen Transport
irods_cfg_validate true Ob die Konfigurationswerte validiert werden sollten, wenn die Konfigurationsdateien generiert werden
irods_cfg_xmsg_host Der Hostname des XMessage-Servers
irods_cfg_xmsg_port 1279 Der Port, auf dem der XMessage-Server arbeitet, falls er aktiviert ist
irods_cfg_zone_auth_scheme native gsi, krb, native, pam Das Authentifizierungsschema, das von irods_cfg_zone_user verwendet wird
irods_cfg_zone_key TEMPORARY_zone_key Das geteilte Geheimnis, das für die Authentifizierung und Identifizierung bei der serverübergreifenden Kommunikation verwendet wird
irods_cfg_zone_name tempZone Der Name der Zone, an der der Server teilnimmt
irods_cfg_zone_password rods Das Passwort, das verwendet wird, um irods_cfg_zone_user zu authentifizieren.
irods_cfg_zone_port 1247 Der Hauptport, der von der Zone für die Kommunikation verwendet wird
irods_cfg_zone_user rods Der Name des rodsadmin-Benutzers, der diese iRODS-Instanz ausführt

Die Variable irods_cfg_access_entries ist ein Array von access_entry-Objekten. Ein access_entry-Objekt hat die folgenden Felder, die alle erforderlich sind.

Feld Optionen Kommentare
address Die IPv4-Adresse eines Hosts oder Netzwerks, das Zugriff hat
group Die iRODS-Gruppe, die Zugriff hat
mask Die Netzwerkmaske, wenn address eine Netzwerkadresse ist
user Der iRODS-Benutzer, der Zugriff hat

Die Variable irods_cfg_environment_variables ist ein Dictionary, wobei der Schlüssel der Name einer Umgebungsvariablen des Serverprozesses ist und der Wert der Wert der Umgebungsvariablen.

Die Variable irods_cfg_federation ist ein Array von federation-Objekten. Ein federation-Objekt hat die folgenden Felder, die alle erforderlich sind.

Feld Optionen Kommentare
catalog_provider_hosts Eine Liste von FQDNs oder IP-Adressen der Katalogdienstanbieter in der föderierten Zone
negotiation_key Der 32-Byte-Verschlüsselungsschlüssel der föderierten Zone
zone_key Das gemeinsame Authentifizierungsgeheimnis mit der föderierten Zone
zone_name Der Name der föderierten Zone

Die Variable irods_cfg_host_entries ist ein Array von host_entry-Objekten. Ein host_entry-Objekt hat die folgenden Felder, die alle erforderlich sind.

Feld Optionen Kommentare
address_type local, remote Gibt an, ob dieser Host localhost ist.
addresses Ein Array von Namen und Adressen, die sich auf diesen Host beziehen

Die Variable irods_cfg_icat ist ein icat-Objekt. Ein icat-Objekt hat die folgenden Felder, von denen none erforderlich sind.

Feld Standard Optionen Kommentare
catalog_database_type postgres mysql, oracle, postgres Der Typ der Datenbank, die iRODS für den iCAT verwendet. siehe unten
db_host localhost Der Hostname des DBMS
db_name ICAT Der Name der Datenbank, die als iCAT verwendet wird
db_password testpassword Das Passwort, das von db_username verwendet wird, um sich mit db_name zu verbinden
db_port 5432 Der Port, an dem der Datenbankserver lauscht
db_username irods Der Benutzername der Datenbank
odbc_driver null Der ODBC-Treiber, der verwendet wird; wenn null, wird der Treiber automatisch bestimmt

Für catalog_database_type wurde nur postgres vollständig getestet.

Fakten Setzen

Wenn eine der iRODS-Konfigurationsdateien geändert wird, wird das Faktum irods_cfg_made_changes auf true gesetzt.

Abhängigkeiten

Keine

Beispiel 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

# Katalogdienst-Anbieter
- 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: "Machst du gerne!"
            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: Rate es einfach.
        irods_cfg_re_additional_rulebases:
          - ipc_custom
        irods_cfg_server_control_plane_key: "Ich sag's nicht."
        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

# Katalogdienst-Consumer, der als Ressourcen-Server fungiert
- 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: Rate es einfach.
        irods_cfg_re_additional_rulebases:
          - ipc_custom
        irods_cfg_server_control_plane_key: "Ich sag's nicht."
        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

Lizenz

Siehe Lizenz.

Autoreninformation

Tony Edgin tedgin@arizona.edu CyVerse

Über das Projekt

An ansible role for configuring an iRODS server

Installieren
ansible-galaxy install CyVerse-Ansible.irods_cfg
GitHub Repository
Lizenz
other
Downloads
142