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