galaxyproject.cvmfs

CVMFS

Installer et configurer CernVM-FS (CVMFS), en particulier pour les serveurs Galaxy.

Exigences

Sur Enterprise Linux (ansible_os_family == "RedHat"), il est supposé que vous avez activé EPEL (Extra Packages for Enterprise Linux) pour les dépendances de CVMFS. Si vous devez activer EPEL, geerlingguy.repo-epel peut facilement le faire pour vous.

Variables du rôle

Toutes les variables sont facultatives. Cependant, si elles ne sont pas définies, le rôle ne fera essentiellement rien. Consultez les défauts et le playbook d'exemple pour des exemples.

Client Galaxy

À part cvmfs_role comme décrit ci-dessous, les administrateurs de Galaxy devront probablement uniquement définir la variable galaxy_cvmfs_repos_enabled (désactivée par défaut), qui configure automatiquement le client CVMFS pour les dépôts CVMFS de galaxyproject.org.

La valeur de galaxy_cvmfs_repos_enabled peut être soit config-repo soit toute valeur qui évalue à true (ou false pour désactiver explicitement, bien que cela soit le comportement par défaut). Utiliser config-repo est recommandé, car cela amène le rôle à n'installer qu'une configuration minimale nécessaire pour monter le dépôt CVMFS cvmfs-config.galaxyproject.org, puis utilise le support du dépôt de configuration de CVMFS pour obtenir les configurations des autres dépôts CVMFS de galaxyproject.org. Cela garantit que vous aurez toujours des configurations à jour pour tous les dépôts CVMFS de galaxyproject.org.

Définir galaxy_cvmfs_repos_enabled sur config-repo écrase la valeur de cvmfs_config_repo, car il ne peut y avoir qu'un seul dépôt de configuration par défaut configuré sur le client.

Définir galaxy_cvmfs_repos_enabled sur toute autre valeur "vraie" fera en sorte que le rôle crée une configuration statique où les configurations complètes pour chaque dépôt CVMFS de galaxyproject.org sont installées sur l'hôte cible. Cette option est conservée pour des raisons de compatibilité.

Vous pouvez écraser les valeurs par défaut pour cvmfs_keys, cvmfs_server_urls et cvmfs_repositories de Galaxy en préfixant galaxy_ aux noms des variables. Voir les défauts pour plus de détails.

Si galaxy_cvmfs_repos_enabled n'est pas défini, la configuration complète des dépôts non-Galaxy peut être effectuée à l'aide de l'ensemble de variables décrites ci-dessous.

Variables de client ou partagé client/serveur

variable type description
cvmfs_role string Type d'hôte CVMFS : client, stratum0, stratum1 ou localproxy. Alternativement, vous pouvez placer des hôtes dans les groupes cvmfsclients, cvmfsstratum0servers, cvmfsstratum1servers, et cvmfslocalproxies. Contrôle quels paquets sont installés et quelle configuration est effectuée.
cvmfs_keys liste de dicts Clés à installer sur des hôtes de tous types.
cvmfs_server_urls liste de dicts URL de serveur CVMFS, valeur de CVMFS_SERVER_URL dans /etc/cvmfs/domain.d/<domain>.conf.
cvmfs_repositories liste de dicts Configurations des dépôts CVMFS, valeur de CVMFS_REPOSITORIES dans /etc/cvmfs/default.local plus des réglages supplémentaires dans /etc/cvmfs/repositories.d/<repository>/{client,server}.conf.
cvmfs_config_repo dict Configuration du dépôt de configuration CVMFS, voir la valeur de galaxy_cvmfs_config_repo dans les défauts pour la syntaxe.
cvmfs_quota_limit entier en Mo Taille du cache client CVMFS. Par défaut, 4000.
cvmfs_upgrade_client boolean Met à jour CVMFS sur les clients vers la dernière version si déjà installé. Par défaut, false.
cvmfs_preload_install boolean Installe le script cvmfs_preload pour précharger le cache CVMFS.
cvmfs_preload_path chemin Répertoire où cvmfs_preload doit être installé.
cvmfs_install_setuid_cvmfs_wipecache boolean Installe un binaire setuid sur les clients qui permet aux utilisateurs non privilégiés d'effectuer cvmfs_config wipecache. Seulement pour EL (la source est fournie).
cvmfs_install_setuid_cvmfs_remount_sync boolean Installe un binaire setuid sur les clients qui permet aux utilisateurs non privilégiés d'effectuer cvmfs_talk remount sync. Seulement pour EL (la source est fournie).

Les variables complexes (liste de dict) ont les syntaxes suivantes :

cvmfs_keys:
  - path: 'chemin absolu vers la clé repo.key.pub'
    owner: 'utilisateur possédant le fichier de clé (par défaut : root)'
    key: |
      -----BEGIN PUBLIC KEY-----
      MIIBIjAN...

cvmfs_server_urls:
  - domain: 'domaine parent du dépôt'
    urls:
      - 'URL du dépôt'

cvmfs_repositories:
  - repository: 'nom du dépôt'
    stratum0: 'nom d’hôte stratum 0'
    owner: 'utilisateur possédant le dépôt (par défaut : root)'
    key_dir: 'chemin vers le répertoire contenant les clés du dépôt (par défaut : /etc/cvmfs/keys)'
    server_options:
      - KEY=val
    client_options:
      - KEY=val

Pour Stratum 0 / responsables de versions, vous pouvez automatiquement purger les anciens instantanés en utilisant prune_snapshots_time, un hash ayant des clés qui correspondent aux options du module cron. Si prune_snapshots_time n'est pas défini, alors les instantanés ne sont pas automatiquement purgés.

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

L'option prune_snapshots_count par dépôt a pour valeur par défaut celle de cvmfs_stratum0_prune_snapshots_count dans defaults/main.yml si elle n'est pas définie.

Variables serveur

variable type description
cvmfs_private_keys liste de dicts Clés à installer sur les hôtes Stratum 0. Séparé de cvmfs_keys pour éviter la duplication et pour la gestion des clés.
cvmfs_config_apache boolean Configure Apache sur les serveurs Stratum 0 et 1. Si désactivé, vous devez le configurer vous-même. Par défaut, true.
cvmfs_manage_firewall boolean Tente de configurer firewalld (EL) ou ufw (Debian) pour permettre le trafic vers les ports configurés. Par défaut, false.
cvmfs_squid_conf_src chemin Chemin vers le fichier de configuration Squid modèle (pour les serveurs Stratum 1 et les proxies locaux). Les valeurs par défaut se trouvent dans le répertoire templates/ du rôle.
cvmfs_stratum0_http_ports liste d'entiers Port(s) sur lesquels Apache sur les serveurs Stratum 0 doit écouter. Par défaut, 80.
cvmfs_stratum1_http_ports liste d'entiers Port(s) sur lesquels Squid sur les serveurs Stratum 1 doit écouter. Par défaut, 80 et 8000.
cvmfs_stratum1_apache_port entier Port sur lequel Apache sur les serveurs Stratum 1 doit écouter. Par défaut, 8008.
cvmfs_stratum1_cache_mem entier en Mo Quantité de mémoire que Squid doit utiliser pour le cache. Par défaut, 128.
cvmfs_stratum1_cache_dir liste de dicts
cvmfs_localproxy_http_ports liste d'entiers Port(s) sur lesquels Squid sur les serveurs proxy locaux doit écouter. Par défaut, 3128.
cvmfs_upgrade_server boolean Met à jour CVMFS sur les serveurs vers la dernière version si déjà installé. Par défaut, false.
cvmfs_srv_device chemin Dispositif bloc pour créer un système de fichiers et monter pour les données CVMFS. Non défini par défaut.
cvmfs_srv_fstype string Système de fichiers à créer sur cvmfs_srv_device. Par défaut, ext4.
cvmfs_srv_mount chemin Chemin pour monter le volume de données CVMFS. Par défaut, /srv (mais est ignoré si cvmfs_srv_device n'est pas défini).
cvmfs_union_fs string Type de système de fichiers union (overlayfs ou aufs) pour de nouveaux dépôts sur les serveurs Stratum 0.
cvmfs_numfiles entier Définit le nombre maximum de fichiers ouverts dans /etc/security/limits.conf. Utile avec l’option client CVMFS_NFILES sur les serveurs Stratum 0.

Dépendances

Aucune.

Exemple de Playbook

Configurer tous les hôtes en tant que clients CVMFS avec des configurations pour les dépôts Galaxy CVMFS :

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

Créer un Stratum 1 (miroir) des dépôts Galaxy CVMFS et configurer les clients pour préférer votre Stratum 1 (en supposant que vous avez configuré des hôtes dans les groupes cvmfsclients et cvmfsstratum1servers) :

- name: CVMFS
  hosts: cvmfsclients:cvmfsstratum1servers
  vars:
    cvmfs_srv_device: /dev/sdb
    galaxy_cvmfs_repos_enabled: true
    # écraser le défaut
    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

Créer votre propre infrastructure CVMFS. Exécutez une fois sans clés (de nouvelles clés seront générées lors de la création du dépôt) :

- 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

Une fois les clés créées, ajoutez-les à cvmfs_keys et exécutez à nouveau comme ci-dessus mais avec hosts: all et cvmfs_keys défini comme suit :

- 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...

Licence

MIT

Informations sur l'auteur

Nate Coraor
Helena Rasche

Voir les contributeurs sur GitHub

À propos du projet

Install and configure CernVM-FS (CVMFS)

Installer
ansible-galaxy install galaxyproject.cvmfs
Licence
Unknown
Téléchargements
63.2k
Propriétaire
Galaxy is an open, web-based platform for data-intensive research.