cvmfs

CVMFS

Установите и настройте CernVM-FS (CVMFS), особенно для серверов Galaxy.

Требования

На Enterprise Linux (ansible_os_family == "RedHat"), предполагается, что вы активировали Дополнительные пакеты для Enterprise Linux (EPEL) для зависимостей CVMFS. Если вам нужно включить EPEL, geerlingguy.repo-epel может легко сделать это за вас.

Переменные роли

Все переменные являются опциональными. Однако, если они не заданы, роль фактически ничего не сделает. Ознакомьтесь с умолчаниями и примером плейбука для примеров.

Клиент Galaxy

Кроме переменной cvmfs_role, как описано ниже, администраторам Galaxy скорее всего потребуется установить переменную galaxy_cvmfs_repos_enabled (по умолчанию отключена), которая автоматически настраивает клиент CVMFS для репозиториев CVMFS galaxyproject.org.

Значение galaxy_cvmfs_repos_enabled может быть либо config-repo, либо любым значением, которое оценивается как true (или false для явного отключения, хотя это значение по умолчанию). Рекомендуется использовать config-repo, так как это позволяет роли устанавливать минимальную конфигурацию, необходимую для подключения к репозиторию CVMFS cvmfs-config.galaxyproject.org, а затем использовать поддержку Конфигурационного репозитория CVMFS, чтобы получить конфигурации для других репозиториев CVMFS galaxyproject.org. Это гарантирует, что у вас всегда будут актуальные конфигурации для всех репозиториев CVMFS galaxyproject.org.

Установка galaxy_cvmfs_repos_enabled в config-repo переопределяет значение cvmfs_config_repo, поскольку может быть настроен только один конфигурационный репозиторий по умолчанию на клиенте.

Установка galaxy_cvmfs_repos_enabled в любое другое истинное значение приведет к тому, что роль создаст статическую конфигурацию, при которой полные конфигурации для каждого репозитория CVMFS galaxyproject.org будут установлены на целевом хосте. Эта опция сохраняется для поддержки устаревших версий.

Вы можете переопределить значения по умолчанию для cvmfs_keys, cvmfs_server_urls и cvmfs_repositories Galaxy, добавив префикс galaxy_ к именам переменных. Смотрите умолчания для подробностей.

Если galaxy_cvmfs_repos_enabled не установлено, полная конфигурация репозиториев, не относящихся к Galaxy, может быть выполнена с помощью набора переменных, описанных ниже.

Переменные клиента или общего клиента/сервера

переменная тип описание
cvmfs_role строка Тип хоста CVMFS: client, stratum0, stratum1 или localproxy. Вы также можете объединить хосты в группы cvmfsclients, cvmfsstratum0servers, cvmfsstratum1servers и cvmfslocalproxies. Указывает, какие пакеты будут установлены и какая конфигурация будет выполнена.
cvmfs_keys список словарей Ключи для установки на хостах всех типов.
cvmfs_server_urls список словарей URL серверов CVMFS, значение CVMFS_SERVER_URL в /etc/cvmfs/domain.d/<domain>.conf.
cvmfs_repositories список словарей Конфигурации репозиториев CVMFS, значение CVMFS_REPOSITORIES в /etc/cvmfs/default.local, плюс дополнительные настройки в /etc/cvmfs/repositories.d/<repository>/{client,server}.conf.
cvmfs_config_repo словарь Конфигурация Конфигурационного репозитория CVMFS, смотрите значение galaxy_cvmfs_config_repo в умолчаниях для синтаксиса.
cvmfs_quota_limit целое число в МБ Размер кэша клиента 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: 'родительский домен репозитория'
    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 для каждого репозитория по умолчанию равна значению cvmfs_stratum0_prune_snapshots_count в умолчаниях/main.yml, если она не задана.

Переменные сервера

переменная тип описание
cvmfs_private_keys список словарей Ключи для установки на хосты Stratum 0. Отделены от cvmfs_keys для удобства хранения и предотвращения дублирования.
cvmfs_config_apache логическое Настроить Apache на серверах Stratum 0 и 1. Если отключено, вам нужно настроить его самостоятельно. По умолчанию true.
cvmfs_manage_firewall логическое Попытаться настроить firewalld (EL) или ufw (Debian), чтобы разрешить трафик на настроенные порты. По умолчанию false.
cvmfs_squid_conf_src путь Путь к шаблону конфигурационного файла Squid (для серверов Stratum 1 и локальных прокси). Настройки по умолчанию находятся в директории templates/ роли.
cvmfs_stratum0_http_ports список целых чисел Порт(ы), на которых Apache на серверах Stratum 0 будет слушать. По умолчанию 80.
cvmfs_stratum1_http_ports список целых чисел Порт(ы), на которых Squid на серверах Stratum 1 будет слушать. По умолчанию 80 и 8000.
cvmfs_stratum1_apache_port целое число Порт, на котором Apache на серверах Stratum 1 будет слушать. По умолчанию 8008.
cvmfs_stratum1_cache_mem целое число в МБ Объем памяти для кеширования для 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 строка Тип объединенной файловой системы (overlayfs или aufs) для новых репозиториев на серверах Stratum 0.
cvmfs_numfiles целое число Установите максимальное количество открытых файлов в /etc/security/limits.conf. Полезно с клиентской опцией CVMFS_NFILES на серверах Stratum 0.

Зависимости

Нет.

Пример плейбука

Настройка всех хостов в качестве клиентов CVMFS с конфигурациями для репозиториев CVMFS Galaxy:

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

Создать Stratum 1 (зеркало) репозиториев CVMFS Galaxy и настроить клиентов на предпочтение вашего Stratum 1 (предполагая, что вы настроили хосты в группы cvmfsclients и cvmfsstratum1servers):

- 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: all и cvmfs_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/ansible-cvmfs
Лицензия
Unknown
Загрузки
58740
Владелец
Galaxy is an open, web-based platform for data-intensive research.