galaxyproject.cvmfs

CVMFS

安装和配置 CernVM-FS (CVMFS),特别是针对 Galaxy 服务器。

要求

在企业版 Linux (ansible_os_family == "RedHat" )上,假设您已为 CVMFS 的依赖项启用了 企业 Linux 的额外软件包 (EPEL)。如果您需要启用 EPEL,可以使用 geerlingguy.repo-epel,它可以轻松帮助您完成这项工作。

角色变量

所有变量都是可选的。但是,如果未设置,角色将基本上不起作用。有关示例,请参见 defaults示例剧本

Galaxy 客户端

除了下面描述的 cvmfs_roleGalaxy 的管理员最有可能只需要设置 galaxy_cvmfs_repos_enabled 变量(默认情况下禁用),该变量会自动将 CVMFS 客户端配置为使用 galaxyproject.org 的 CVMFS 仓库。

galaxy_cvmfs_repos_enabled 的值可以是 config-repo 或任何评估为 true 的值(或者为 false 以显式禁用,虽然这也是默认值)。 推荐使用 config-repo,因为它使角色仅安装必要的最小配置,以挂载 cvmfs-config.galaxyproject.org CVMFS 仓库,然后利用 CVMFS 的 配置仓库 功能获取其他 galaxyproject.org CVMFS 仓库的配置。这可以确保您始终拥有所有 galaxyproject.org CVMFS 仓库的最新配置。

galaxy_cvmfs_repos_enabled 设置为 config-repo 会覆盖 cvmfs_config_repo 的值,因为客户端上只能配置一个默认的配置仓库。

galaxy_cvmfs_repos_enabled 设置为其他任何真实值将导致角色创建静态配置,其中每个 galaxyproject.org CVMFS 仓库的完整配置将安装在目标主机上。此选项保留用于向后兼容。

您可以通过在变量名前加上 galaxy_ 来覆盖 Galaxy 的 cvmfs_keyscvmfs_server_urlscvmfs_repositories 的默认值。有关详细信息,请参见 defaults

如果未设置 galaxy_cvmfs_repos_enabled,则可以使用下面描述的一组变量为非 Galaxy 仓库执行完整配置。

客户端或共享客户端/服务器变量

变量 类型 描述
cvmfs_role 字符串 CVMFS 主机类型:clientstratum0stratum1localproxy。或者,可以将主机放入 cvmfsclientscvmfsstratum0serverscvmfsstratum1serverscvmfslocalproxies 组中。控制所安装的软件包以及所执行的配置。
cvmfs_keys 字典列表 在所有类型的主机上安装的密钥。
cvmfs_server_urls 字典列表 CVMFS 服务器 URL,/etc/cvmfs/domain.d/<domain>.conf 中的 CVMFS_SERVER_URL 的值。
cvmfs_repositories 字典列表 CVMFS 仓库配置,/etc/cvmfs/default.local 中的 CVMFS_REPOSITORIES 值,加上 /etc/cvmfs/repositories.d/<repository>/{client,server}.conf 中的其他设置。
cvmfs_config_repo 字典 CVMFS 配置仓库 的配置,语法请参见 defaults 中的 galaxy_cvmfs_config_repo 的值。
cvmfs_quota_limit MB 整数 CVMFS 客户端缓存的大小。默认值为 4000
cvmfs_upgrade_client 布尔值 如果客户端已经安装,是否将 CVMFS 升级到最新版本。默认值为 false
cvmfs_preload_install 布尔值 安装 cvmfs_preload 脚本以 预加载 CVMFS 缓存
cvmfs_preload_path 路径 cvmfs_preload 应该安装的目录。
cvmfs_install_setuid_cvmfs_wipecache 布尔值 在客户端上安装一个 setuid 的二进制文件,允许无权用户执行 cvmfs_config wipecache。仅适用于 EL(提供源代码)。
cvmfs_install_setuid_cvmfs_remount_sync 布尔值 在客户端上安装一个 setuid 的二进制文件,允许无权用户执行 cvmfs_talk remount sync。仅适用于 EL(提供源代码)。

复杂的(字典列表)变量具有以下语法:

cvmfs_keys:
  - path: 'repo key.pub 的绝对路径'
    owner: '拥有密钥文件的用户(默认:root)'
    key: |
      -----BEGIN PUBLIC KEY-----
      MIIBIjAN...

cvmfs_server_urls:
  - domain: 'repo 父域名'
    urls:
      - '仓库 URL'

cvmfs_repositories:
  - repository: '仓库名称'
    stratum0: 'stratum 0 主机名'
    owner: '拥有仓库的用户(默认:root)'
    key_dir: '包含仓库密钥的目录路径(默认:/etc/cvmfs/keys)'
    server_options:
      - KEY=val
    client_options:
      - KEY=val

对于 Stratum 0 / 发布管理器,您可以通过 prune_snapshots_time 自动修剪旧快照,该哈希具有对应于 cron 模块选项 的键。如果未设置 prune_snapshots_time,则不会自动修剪快照。

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

每个仓库的 prune_snapshots_count 选项默认设置为 defaults/main.yml 中的 cvmfs_stratum0_prune_snapshots_count 的值(如果未设置)。

服务器变量

变量 类型 描述
cvmfs_private_keys 字典列表 在 Stratum 0 主机上安装的密钥。与 cvmfs_keys 分开以便可用性并避免重复。
cvmfs_config_apache 布尔值 在 Stratum 0 和 1 服务器上配置 Apache。如果禁用,您必须自己配置。默认值为 true
cvmfs_manage_firewall 布尔值 尝试配置 firewalld (EL) 或 ufw (Debian) 以允许流量通过被配置的端口。默认值为 false
cvmfs_squid_conf_src 路径 Squid 配置文件的模板路径(用于 Stratum 1 和本地代理服务器)。默认位于角色的 templates/ 目录中。
cvmfs_stratum0_http_ports 整数列表 配置 Stratum 0 服务器上的 Apache 监听的端口。默认值为 80
cvmfs_stratum1_http_ports 整数列表 配置 Stratum 1 服务器上的 Squid 监听的端口。默认值为 808000
cvmfs_stratum1_apache_port 整数 配置 Stratum 1 服务器上 Apache 监听的端口。默认值为 8008
cvmfs_stratum1_cache_mem MB 整数 Squid 用于缓存的内存量。默认值为 128
cvmfs_stratum1_cache_dir 字典列表
cvmfs_localproxy_http_ports 整数列表 配置本地代理服务器上的 Squid 监听的端口。默认值为 3128
cvmfs_upgrade_server 布尔值 如果服务器已经安装,是否将 CVMFS 升级到最新版本。默认值为 false
cvmfs_srv_device 路径 用于创建文件系统并挂载 CVMFS 数据的块设备。默认未设置。
cvmfs_srv_fstype 字符串 cvmfs_srv_device 上创建的文件系统。默认值为 ext4
cvmfs_srv_mount 路径 挂载 CVMFS 数据卷的路径。默认值为 /srv(如果 cvmfs_srv_device 未设置,则会被忽略)。
cvmfs_union_fs 字符串 Stratum 0 服务器上的新仓库的联合文件系统类型(overlayfsaufs)。
cvmfs_numfiles 整数 /etc/security/limits.conf 中设置最大打开文件数。与 Stratum 0 服务器上的 CVMFS_NFILES 客户端选项一起使用很有用。

依赖

无。

示例剧本

将所有主机配置为 CVMFS 客户端,并为 Galaxy CVMFS 仓库配置:

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

创建 Galaxy CVMFS 仓库的 Stratum 1(镜像),并配置客户端以优先使用您的 Stratum 1(假设您已将主机配置在 cvmfsclientscvmfsstratum1servers 组中):

- name: CVMFS
  hosts: cvmfsclients:cvmfsstratum1servers
  vars:
    cvmfs_srv_device: /dev/sdb
    galaxy_cvmfs_repos_enabled: true
    # 覆盖默认值
    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

创建自己的 CVMFS 基础设施。第一次运行时不带密钥(在创建仓库时将生成新密钥):

- 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

一旦密钥被创建,将它们添加到 cvmfs_keys 中,并以相同的方式运行,但将 hosts: allcvmfs_keys 定义为:

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

许可证

MIT

作者信息

Nate Coraor
Helena Rasche

在 GitHub 上查看贡献者

关于项目

Install and configure CernVM-FS (CVMFS)

安装
ansible-galaxy install galaxyproject.cvmfs
许可证
Unknown
下载
63.2k
拥有者
Galaxy is an open, web-based platform for data-intensive research.