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
ansible-galaxy install galaxyproject.cvmfs