galaxyproject.cvmfs

CVMFS

Instale y configure CernVM-FS (CVMFS), especialmente para los servidores de Galaxy.

Requisitos

En Linux Empresarial (ansible_os_family == "RedHat"), se asume que ha habilitado Extra Packages for Enterprise Linux (EPEL) para las dependencias de CVMFS. Si necesita habilitar EPEL, geerlingguy.repo-epel puede hacerlo fácilmente por usted.

Variables del Rol

Todas las variables son opcionales. Sin embargo, si no se establecen, el rol no hará nada. Consulte los valores predeterminados y el ejemplo de playbook para más ejemplos.

Cliente de Galaxy

Aparte de cvmfs_role como se describe a continuación, los administradores de Galaxy probablemente solo necesiten establecer la variable galaxy_cvmfs_repos_enabled (deshabilitada por defecto), que configura automáticamente el cliente CVMFS para los repositorios CVMFS de galaxyproject.org.

El valor de galaxy_cvmfs_repos_enabled puede ser config-repo o cualquier valor que evalúe a true (o false para deshabilitar explícitamente, aunque este es el valor predeterminado). Se recomienda usar config-repo, ya que provoca que el rol solo instale una configuración mínima necesaria para montar el repositorio CVMFS cvmfs-config.galaxyproject.org, y luego usa el soporte de Config Repository de CVMFS para obtener las configuraciones de los otros repositorios CVMFS de galaxyproject.org. Esto asegura que siempre tendrá configuraciones actualizadas para todos los repositorios CVMFS de galaxyproject.org.

Establecer galaxy_cvmfs_repos_enabled en config-repo anula el valor de cvmfs_config_repo ya que solo se puede configurar un repositorio de configuración predeterminado en el cliente.

Establecer galaxy_cvmfs_repos_enabled en cualquier otro valor que sea verdadero hará que el rol cree una configuración estática donde se instala la configuración completa para cada repositorio CVMFS de galaxyproject.org en el host de destino. Esta opción se mantiene por motivos de compatibilidad.

Puede anular los valores predeterminados de cvmfs_keys, cvmfs_server_urls y cvmfs_repositories de Galaxy anteponiendo galaxy_ a los nombres de las variables. Consulte los valores predeterminados para más detalles.

Si galaxy_cvmfs_repos_enabled no está establecido, se puede realizar la configuración completa de los repositorios que no son de Galaxy utilizando el conjunto de variables descrito a continuación.

Variables del cliente o variables compartidas del cliente/servidor

variable tipo descripción
cvmfs_role cadena Tipo de host CVMFS: client, stratum0, stratum1 o localproxy. Alternativamente, puede colocar hosts en los grupos cvmfsclients, cvmfsstratum0servers, cvmfsstratum1servers y cvmfslocalproxies. Controla qué paquetes se instalan y qué configuración se realiza.
cvmfs_keys lista de diccionarios Claves para instalar en hosts de todos los tipos.
cvmfs_server_urls lista de diccionarios URLs de los servidores CVMFS, el valor de CVMFS_SERVER_URL en /etc/cvmfs/domain.d/<domain>.conf.
cvmfs_repositories lista de diccionarios Configuraciones del repositorio CVMFS, el valor de CVMFS_REPOSITORIES en /etc/cvmfs/default.local más configuraciones adicionales en /etc/cvmfs/repositories.d/<repository>/{client,server}.conf.
cvmfs_config_repo diccionario Configuración del Repository de Configuración, consulte el valor de galaxy_cvmfs_config_repo en los valores predeterminados para obtener la sintaxis.
cvmfs_quota_limit entero en MB Tamaño de la caché del cliente CVMFS. El valor predeterminado es 4000.
cvmfs_upgrade_client booleano Actualiza CVMFS en los clientes a la última versión si ya está instalado. El valor predeterminado es false.
cvmfs_preload_install booleano Instala el script cvmfs_preload para precargar la caché de CVMFS.
cvmfs_preload_path ruta Directorio donde se debe instalar cvmfs_preload.
cvmfs_install_setuid_cvmfs_wipecache booleano Instala un binario setuid en los clientes que permite a los usuarios no privilegiados realizar cvmfs_config wipecache. Solo para EL (se proporciona el código fuente).
cvmfs_install_setuid_cvmfs_remount_sync booleano Instala un binario setuid en los clientes que permite a los usuarios no privilegiados realizar cvmfs_talk remount sync. Solo para EL (se proporciona el código fuente).

Las variables complejas (lista de diccionarios) tienen las siguientes sintaxis:

cvmfs_keys:
  - path: 'ruta absoluta a key.pub del repositorio'
    owner: 'usuario que posee el archivo de clave (predeterminado: root)'
    key: |
      -----BEGIN PUBLIC KEY-----
      MIIBIjAN...

cvmfs_server_urls:
  - domain: 'dominio padre del repositorio'
    urls:
      - 'URL del repositorio'

cvmfs_repositories:
  - repository: 'nombre del repositorio'
    stratum0: 'nombre del host stratum 0'
    owner: 'usuario que posee el repositorio (predeterminado: root)'
    key_dir: 'ruta al directorio que contiene las claves del repositorio (predeterminado: /etc/cvmfs/keys)'
    server_options:
      - KEY=val
    client_options:
      - KEY=val

Para Stratum 0 / Gerentes de Lanzamiento, puede eliminar automáticamente instantáneas más antiguas utilizando prune_snapshots_time, un hash que tiene claves que corresponden a las opciones del módulo cron. Si prune_snapshots_time no está establecido, entonces las instantáneas no se eliminarán automáticamente.

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

La opción prune_snapshots_count por repositorio tiene como valor predeterminado el valor de cvmfs_stratum0_prune_snapshots_count en los valores predeterminados si no está establecido.

Variables del Servidor

variable tipo descripción
cvmfs_private_keys lista de diccionarios Claves para instalar en los hosts de Stratum 0. Separadas de cvmfs_keys para evitar duplicaciones.
cvmfs_config_apache booleano Configura Apache en los servidores Stratum 0 y 1. Si está deshabilitado, debe configurarlo usted mismo. El valor predeterminado es true.
cvmfs_manage_firewall booleano Intenta configurar firewalld (EL) o ufw (Debian) para permitir tráfico a los puertos configurados. El valor predeterminado es false.
cvmfs_squid_conf_src ruta Ruta al archivo de plantilla de configuración de Squid (para servidores Stratum 1 y proxy locales). Los predeterminados están en el directorio templates/ del rol.
cvmfs_stratum0_http_ports lista de enteros Puerto(s) en los que configurar Apache en los servidores Stratum 0 para escuchar. El valor predeterminado es 80.
cvmfs_stratum1_http_ports lista de enteros Puerto(s) en los que configurar Squid en los servidores Stratum 1 para escuchar. El valor predeterminado es 80 y 8000.
cvmfs_stratum1_apache_port entero Puerto para configurar Apache en los servidores Stratum 1 para escuchar. El valor predeterminado es 8008.
cvmfs_stratum1_cache_mem entero en MB Cantidad de memoria que Squid utilizará para el almacenamiento en caché. El valor predeterminado es 128.
cvmfs_stratum1_cache_dir lista de diccionarios
cvmfs_localproxy_http_ports lista de enteros Puerto(s) en los que configurar Squid en los servidores proxy locales para escuchar. El valor predeterminado es 3128.
cvmfs_upgrade_server booleano Actualiza CVMFS en los servidores a la última versión si ya está instalado. El valor predeterminado es false.
cvmfs_srv_device ruta Dispositivo de bloque para crear un sistema de archivos y montar para los datos de CVMFS. No establecido por defecto.
cvmfs_srv_fstype cadena Sistema de archivos a crear en cvmfs_srv_device. El valor predeterminado es ext4.
cvmfs_srv_mount ruta Ruta para montar el volumen de datos de CVMFS. El valor predeterminado es /srv (pero se ignora si cvmfs_srv_device no está establecido).
cvmfs_union_fs cadena Tipo de sistema de archivos de unión (overlayfs o aufs) para nuevos repositorios en servidores Stratum 0.
cvmfs_numfiles entero Establece el número máximo de archivos abiertos en /etc/security/limits.conf. Útil con la opción de cliente CVMFS_NFILES en servidores Stratum 0.

Dependencias

Ninguna.

Ejemplo de Playbook

Configure todos los hosts como clientes CVMFS con configuraciones para los repositorios CVMFS de Galaxy:

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

Cree un Stratum 1 (espejo) de los repositorios CVMFS de Galaxy y configure los clientes para que prefieran su Stratum 1 (suponiendo que ha configurado hosts en los grupos cvmfsclients y cvmfsstratum1servers):

- name: CVMFS
  hosts: cvmfsclients:cvmfsstratum1servers
  vars:
    cvmfs_srv_device: /dev/sdb
    galaxy_cvmfs_repos_enabled: true
    # override the default
    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

Cree su propia infraestructura CVMFS. Ejecute una vez sin claves (se generarán nuevas claves al crear el repositorio):

- 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

Una vez que se han creado las claves, agréguelas a cvmfs_keys y ejecute lo mismo como arriba pero hosts: all y con cvmfs_keys definido como:

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

Licencia

MIT

Información del Autor

Nate Coraor
Helena Rasche

Ver contribuyentes en GitHub

Acerca del proyecto

Install and configure CernVM-FS (CVMFS)

Instalar
ansible-galaxy install galaxyproject.cvmfs
Licencia
Unknown
Descargas
63.2k
Propietario
Galaxy is an open, web-based platform for data-intensive research.