galaxyproject.cvmfs

CVMFS

Installieren und konfigurieren Sie CernVM-FS (CVMFS), insbesondere für Galaxy Server.

Anforderungen

Bei Enterprise Linux (ansible_os_family == "RedHat") wird angenommen, dass Sie Extra Packages for Enterprise Linux (EPEL) für die Abhängigkeiten von CVMFS aktiviert haben. Wenn Sie EPEL aktivieren müssen, kann geerlingguy.repo-epel dies einfach für Sie erledigen.

Variablen des Rollens

Alle Variablen sind optional. Wenn sie nicht gesetzt sind, wird das Rollen-Skript im Wesentlichen nichts tun. Weitere Beispiele finden Sie in den Standardeinstellungen und im Beispiel-Playbook.

Galaxy-Client

Neben cvmfs_role, wie unten beschrieben, müssen Galaxy-Administratoren wahrscheinlich nur die Variable galaxy_cvmfs_repos_enabled setzen (standardmäßig deaktiviert), die den CVMFS-Client automatisch für die CVMFS-Repositories von galaxyproject.org konfiguriert.

Der Wert von galaxy_cvmfs_repos_enabled kann entweder config-repo oder einen Wert haben, der als true ausgewertet wird (oder false, um es ausdrücklich zu deaktivieren, was der Standard ist). Es wird empfohlen, config-repo zu verwenden, da es die Rolle dazu bringt, nur eine minimale Konfiguration zu installieren, die erforderlich ist, um das CVMFS-Repository cvmfs-config.galaxyproject.org zu verbinden, und dann die Unterstützung des CVMFS Config Repository nutzt, um die Konfigurationen für die anderen CVMFS-Repositories von galaxyproject.org zu erhalten. So haben Sie immer aktuelle Konfigurationen für alle CVMFS-Repositories von galaxyproject.org.

Wenn Sie galaxy_cvmfs_repos_enabled auf config-repo setzen, wird der Wert von cvmfs_config_repo überschrieben, da auf dem Client nur ein Standardkonfigurationsrepository konfiguriert werden kann.

Das Setzen von galaxy_cvmfs_repos_enabled auf einen anderen wahrheitsgetreuen Wert führt dazu, dass die Rolle eine statische Konfiguration erstellt, bei der die vollständigen Konfigurationen für jedes CVMFS-Repository von galaxyproject.org auf dem Zielhost installiert werden. Diese Option bleibt aus Gründen der Abwärtskompatibilität bestehen.

Sie können die Standardeinstellungen für Galaxy's cvmfs_keys, cvmfs_server_urls und cvmfs_repositories überschreiben, indem Sie galaxy_ vor die Variablennamen setzen. Weitere Details finden Sie in den Standardeinstellungen.

Wenn galaxy_cvmfs_repos_enabled nicht gesetzt ist, kann die vollständige Konfiguration von Nicht-Galaxy-Repositories mit der nachfolgend beschriebenen Reihe von Variablen durchgeführt werden.

Client- oder gemeinsame Client/Server-Variablen

Variable Typ Beschreibung
cvmfs_role string Art des CVMFS-Hosts: client, stratum0, stratum1 oder localproxy. Alternativ können Sie Hosts in die Gruppen cvmfsclients, cvmfsstratum0servers, cvmfsstratum1servers und cvmfslocalproxies einordnen. Steuerung, welche Pakete installiert werden und welche Konfiguration vorgenommen wird.
cvmfs_keys Liste von Diktaten Schlüssel, die auf Hosts aller Arten installiert werden sollen.
cvmfs_server_urls Liste von Diktaten CVMFS-Server-URLs, der Wert von CVMFS_SERVER_URL in /etc/cvmfs/domain.d/<domain>.conf.
cvmfs_repositories Liste von Diktaten Konfigurationen für CVMFS-Repositories, der Wert von CVMFS_REPOSITORIES in /etc/cvmfs/default.local plus zusätzliche Einstellungen in /etc/cvmfs/repositories.d/<repository>/{client,server}.conf.
cvmfs_config_repo Diktat CVMFS Konfigurationsrepository Konfiguration, siehe den Wert von galaxy_cvmfs_config_repo in den Standardeinstellungen für die Syntax.
cvmfs_quota_limit Ganzzahl in MB Größe des CVMFS-Client-Caches. Standardwert ist 4000.
cvmfs_upgrade_client boolean CVMFS auf Clients auf die neueste Version aktualisieren, wenn es bereits installiert ist. Standardwert ist false.
cvmfs_preload_install boolean Installieren Sie das Skript cvmfs_preload für Preloading des CVMFS-Caches.
cvmfs_preload_path Pfad Verzeichnis, in dem cvmfs_preload installiert werden soll.
cvmfs_install_setuid_cvmfs_wipecache boolean Installieren Sie eine setuid-Binärdatei auf Clients, die unprivilegierte Benutzer cvmfs_config wipecache ausführen lässt. Nur EL (Quelldatei wird bereitgestellt).
cvmfs_install_setuid_cvmfs_remount_sync boolean Installieren Sie eine setuid-Binärdatei auf Clients, die unprivilegierte Benutzer cvmfs_talk remount sync ausführen lässt. Nur EL (Quelldatei wird bereitgestellt).

Die komplexen Variablen (Liste von Diktaten) haben die folgenden Syntaxen:

cvmfs_keys:
  - path: 'absoluter Pfad zur Repo Key.pub'
    owner: 'Benutzer, der die Schlüsseldatei besitzt (Standard: root)'
    key: |
      -----BEGIN PUBLIC KEY-----
      MIIBIjAN...

cvmfs_server_urls:
  - domain: 'übergeordnete Domain des Repos'
    urls:
      - 'Repository URL'

cvmfs_repositories:
  - repository: 'Repo-Name'
    stratum0: 'Stratum 0 Hostname'
    owner: 'Benutzer, der das Repository besitzt (Standard: root)'
    key_dir: 'Pfad zum Verzeichnis mit Repository-Schlüsseln (Standard: /etc/cvmfs/keys)'
    server_options:
      - KEY=val
    client_options:
      - KEY=val

Für Stratum 0 / Release-Manager können Sie ältere Snapshots automatisch mit der Variable prune_snapshots_time entfernen, einer Hash-Struktur mit Schlüsseln, die den Cron-Modul-Optionen entsprechen. Wenn prune_snapshots_time nicht gesetzt ist, werden Snapshots nicht automatisch entfernt.

cvmfs_repositories:
  - repository: repo.example.org
    owner: user1
    prune_snapshots_count: 20
    prune_snapshots_time:
       special_time: daily

Die prune_snapshots_count-Option pro Repository hat den Standardwert von cvmfs_stratum0_prune_snapshots_count in den Standardeinstellungen, wenn sie nicht gesetzt ist.

Server-Variablen

Variable Typ Beschreibung
cvmfs_private_keys Liste von Diktaten Schlüssel, die auf Stratum 0 Hosts installiert werden. Separat von cvmfs_keys zur Vermeidung von Duplikationen.
cvmfs_config_apache boolean Apache auf Stratum 0 und 1 Servern konfigurieren. Wenn deaktiviert, müssen Sie es selbst konfigurieren. Standardwert ist true.
cvmfs_manage_firewall boolean Versuchen Sie, Firewalld (EL) oder UFW (Debian) zu konfigurieren, um den Verkehr zu den konfigurierten Ports zuzulassen. Standardwert ist false.
cvmfs_squid_conf_src Pfad Pfad zur Vorlagendatei für die Squid-Konfiguration (für Stratum 1 und lokale Proxy-Server). Standardeinstellungen befinden sich im Vorlagen-Verzeichnis der Rolle.
cvmfs_stratum0_http_ports Liste von Ganzzahlen Ports, an denen Apache auf Stratum 0 Servern lauschen soll. Standardwert ist 80.
cvmfs_stratum1_http_ports Liste von Ganzzahlen Ports, an denen Squid auf Stratum 1 Servern lauschen soll. Standardwerte sind 80 und 8000.
cvmfs_stratum1_apache_port Ganzzahl Port, an dem Apache auf Stratum 1 Servern lauschen soll. Standardwert ist 8008.
cvmfs_stratum1_cache_mem Ganzzahl in MB Menge an Speicher, die Squid zum Cachen verwenden soll. Standardwert ist 128.
cvmfs_stratum1_cache_dir Liste von Diktaten
cvmfs_localproxy_http_ports Liste von Ganzzahlen Ports, an denen Squid auf lokalen Proxy-Servern lauschen soll. Standardwert ist 3128.
cvmfs_upgrade_server boolean CVMFS auf Servern auf die neueste Version aktualisieren, wenn es bereits installiert ist. Standardwert ist false.
cvmfs_srv_device Pfad Blockgerät, auf dem ein Dateisystem für CVMFS-Daten erstellt und gemountet werden soll. Standardmäßig nicht gesetzt.
cvmfs_srv_fstype string Dateisystem, das auf cvmfs_srv_device erstellt werden soll. Standardwert ist ext4.
cvmfs_srv_mount Pfad Pfad, um das CVMFS-Datenvolumen zu mounten. Standardwert ist /srv (wird ignoriert, wenn cvmfs_srv_device nicht gesetzt ist).
cvmfs_union_fs string Typ des Union-Dateisystems (overlayfs oder aufs) für neue Repositories auf Stratum 0-Servern.
cvmfs_numfiles Ganzzahl Setzen Sie die maximale Anzahl offener Dateien in /etc/security/limits.conf. Nützlich mit der Client-Option CVMFS_NFILES auf Stratum 0-Servern.

Abhängigkeiten

Keine.

Beispiel-Playbook

Konfigurieren Sie alle Hosts als CVMFS-Clients mit den Konfigurationen für die Galaxy-CVMFS-Repositories:

- name: CVMFS
  hosts: all
  vars:
    cvmfs_role: client
    galaxy_cvmfs_repos_enabled: config-repo
  roles:
    - geerlingguy.repo-epel
    - galaxyproject.cvmfs

Erstellen Sie ein Stratum 1 (Spiegel) der Galaxy-CVMFS-Repositories und konfigurieren Sie Clients so, dass sie Ihr Stratum 1 bevorzugen (vorausgesetzt, Sie haben Hosts in den Gruppen cvmfsclients und cvmfsstratum1servers konfiguriert):

- name: CVMFS
  hosts: cvmfsclients:cvmfsstratum1servers
  vars:
    cvmfs_srv_device: /dev/sdb
    galaxy_cvmfs_repos_enabled: true
    # Standardwert überschreiben
    galaxy_cvmfs_server_urls:
      - domain: galaxyproject.org
        urls:
          - "http://cvmfs.example.org/cvmfs/@fqrn@"
          - "http://cvmfs1-psu0.galaxyproject.org/cvmfs/@fqrn@"
          - "http://cvmfs1-iu0.galaxyproject.org/cvmfs/@fqrn@"
          - "http://cvmfs1-tacc0.galaxyproject.org/cvmfs/@fqrn@"
          - "http://cvmfs1-mel0.gvl.org.au/cvmfs/@fqrn@"
          - "http://cvmfs1-ufr0.galaxyproject.eu/cvmfs/@fqrn@"
  roles:
    - galaxyproject.cvmfs

Erstellen Sie Ihre eigene CVMFS-Infrastruktur. Führen Sie einmal ohne Schlüssel aus (neue Schlüssel werden bei der Erstellung des Repos generiert):

- name: CVMFS
  hosts: cvmfsstratum0servers
  vars:
    cvmfs_numfiles: 4096
    cvmfs_server_urls:
      - domain: example.org
        urls:
          - "http://cvmfs0.example.org/cvmfs/@fqrn@"
    cvmfs_repositories:
      - repository: foo.example.org
        stratum0: cvmfs0.example.org
        key_dir: /etc/cvmfs/keys/example.org
        server_options:
          - CVMFS_AUTO_TAG=false
          - CVMFS_GARBAGE_COLLECTION=true
          - CVMFS_AUTO_GC=false
        client_options:
          - CVMFS_NFILES=4096
      - repository: bar.example.org
        stratum0: cvmfs0.example.org
        key_dir: /etc/cvmfs/keys/example.org
  roles:
    - galaxyproject.cvmfs

Sobald die Schlüssel erstellt wurden, fügen Sie sie zu cvmfs_keys hinzu und führen Sie dasselbe wie oben aus, aber hosts: all und cvmfs_keys definiert als:

- name: CVMFS
  vars:
    cvmfs_keys:
      - path: /etc/cvmfs/keys/example.org/foo.example.org.pub
        key: |
          -----BEGIN PUBLIC KEY-----
          MIIBIjAN...
      - path: /etc/cvmfs/keys/example.org/bar.example.org.pub
        key: |
          -----BEGIN PUBLIC KEY-----
          MIIBIjAN...

Lizenz

MIT

Informationen zum Autor

Nate Coraor
Helena Rasche

Beiträger auf GitHub ansehen

Über das Projekt

Install and configure CernVM-FS (CVMFS)

Installieren
ansible-galaxy install galaxyproject.cvmfs
Lizenz
Unknown
Downloads
63.2k
Besitzer
Galaxy is an open, web-based platform for data-intensive research.