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
Информация об авторе
ansible-galaxy install galaxyproject/ansible-cvmfs