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