open_ondemand
Ansible Роль Open OnDemand
Эта Ansible роль устанавливает и настраивает Open OnDemand на различных дистрибутивах Linux.
Содержание
Совместимость версий
Версии этой роли будут в основном соответствовать версиям Open OnDemand, которые она устанавливает. Главные и минорные версии этой роли будут совместимы с соответствующими главными и минорными версиями Open OnDemand. Релизы патчей в этой роли будут совместимы с установленной и настраиваемой версией Open OnDemand, но будут предоставлять исправления ошибок или новые функции.
Например, версия 1.8.0 этой роли будет совместима с версиями Open OnDemand 1.8.x (в настоящее время это 1.8.20). Версия 1.8.1 этой роли все равно установит версию 1.8.20 Open OnDemand, но предоставит некоторые исправления ошибок или новые функции для этой роли.
Поддерживаемые операционные системы
- CentOS
- Debian
- Fedora
- RedHat
- Rocky Linux
- Suse
- Ubuntu 18
- Ubuntu 20
Установка конкретной версии
Переменная ondemand_package
управляет версией устанавливаемого rpm/dep пакета. Значение по умолчанию ondemand
установит последнюю версию из соответствующего репозитория, но не обновит существующую установку. Вы можете установить конкретную версию, используя полное имя пакета (например, ondemand-3.0.3
), или воспользоваться операторами сравнения, поддерживаемыми параметром name
в модулях ansible yum или apt. Используйте latest
для обновления существующей установки.
Установка из последней или ночной версии
Если вы хотите установить пакет из наших репозиториев latest
или nightly
, просто измените конфигурацию rpm_repo_url
, чтобы загрузить соответствующий RPM. Например, 'https://yum.osc.edu/ondemand/latest/ondemand-release-web-latest-1-6.noarch.rpm'
. Проверьте yum для корректной версии этого RPM.
При установке пакетов из latest или nightly вам может понадобиться исключить пакеты в зависимости от состояния проекта. Например, при разработке версии 2.1 необходимо исключить пакеты 2.0 из latest или nightly.
Используйте ondemand_package_excludes
, чтобы указать список пакетов, которые нужно исключить во время установки yum. Вот пример исключения всех пакетов 2.1
при установке 2.0.20
.
ondemand_package: 'ondemand-2.0.20'
ondemand_package_excludes:
- '*-2.1'
Теги
Эта роль имеет следующие теги, когда вы хотите запустить только определенные задачи.
- configure - настроит Open OnDemand и все приложения
- install - установит Open OnDemand и все приложения
- deps - установит зависимости (действительно только при сборке из исходников)
- build - соберет исходный код (действительно только при сборке из исходников)
Перекрытия
Директория по умолчанию содержит конфигурации, разбитые по файлам, к которым они относятся при настройке или параметрах при сборке из исходников или установке.
Проверьте эти файлы на предмет переменных, которые вы можете переопределить. Сохраните все эти перекрытия в файл, который потом можно будет вызвать с [email protected]
Все файлы по умолчанию сгруппированы по тому, к чему они применяются. Некоторые файлы служат только для документации и содержат только комментарии. Они скрыты для совместимости с ansible 2.9.X и этой ошибкой загрузки пустых файлов.
.apps.yml
- конфигурации для установки приложений (скрыт, так как пустой).build.yml
- конфигурации для сборки OnDemand из исходников.install.yml
- конфигурации для установки OnDemand.nginx_stage.yml
- конфигурации, которые относятся к/etc/ood/config/nginx_stage.yml
.ondemand.yml
- конфигурации, которые относятся к/etc/ood/config/ondemand.d/ondemand.yml
(скрыт, так как пустой).ood_portal.yml
- конфигурации, которые относятся к/etc/ood/config/ood_portal.yml
Использование этой роли для управления кластерами и приложениями
В этой роли есть несколько переменных, которые позволяют настраивать Open OnDemand.
кластеры
Эта конфигурация записывает свое содержимое в /etc/ood/config/clusters.d/<cluster_key>.yml
для каждого элемента кластера в этом словаре. Каждый элемент словаря является многострочной строкой.
Например
clusters:
my_cluster: |
---
v2:
metadata:
title: my_cluster
login:
host: my_host
job:
adapter: slurm
bin: /usr/local
batch_connect:
basic:
script_wrapper: "module restore\n%s"
another_cluster: |
---
v2:
metadata:
title: Another Cluster
Будет создано /etc/ood/config/clusters.d/my_cluster.yml
и /etc/ood/config/clusters.d/another_cluster.yml
с точно таким же содержимым.
my_cluster.yml
v2:
metadata:
title: my_cluster
...
another_cluster.yml
v2:
metadata:
title: Another Cluster
Более подробную информацию можно найти в документации Open OnDemand и Cluster Config Schema v2.
ood_install_apps
Эта конфигурация устанавливает приложения из пользовательских репозиториев в директорию приложений (по умолчанию или пользовательскую).
Она принимает словарь, как в модуле git.
Главный ключ — это имя результирующей директории, куда будет склонирован repo
под директорию dest
.
Только repo:
обязательна.
пример ood_install_apps
ood_install_apps:
jupyter:
repo: https://github.com/OSC/bc_example_jupyter.git
dest: "{{ ood_sys_app_dir }}" # по умолчанию (необязательно)
version: master # по умолчанию (необязательно)
customdir: # создаст /var/www/ood/apps/my/dir/customdir
repo: https://github.com/OSC/bc_example_rstudio
dest: /var/www/ood/apps/my/dir
version: v1.0.1
Приведенный выше пример выполнит
- склонирует
OSC/bc_example_jupyter
в/var/www/ood/apps/sys/jupyter
- склонирует
OSC/bc_example_rstudio
в/var/www/ood/apps/my/dir/customdir
ood_apps
Это позволяет вам настроить приложение bc_desktop
и записать файлы окружения для других приложений.
В самом простом случае, когда задан ключ env
, он запишет пары ключ-значение в файл окружения.
В более сложном случае с bc_desktop
, он запишет свое содержимое в файл <cluster>.yml
(где имя файла — это атрибут cluster
содержимого) а также запишет содержимое ключа submit
в файл submit.yml.erb
.
Следующие примеры должны проиллюстрировать эти два момента.
пример ood_apps
ood_apps:
bc_desktop:
title: "xfce desktop"
cluster: "my_cluster"
form:
- desktop
- hours
attributes:
hours:
value: 1
desktop: "xfce"
submit: |
---
script:
native:
- "-t"
- "<%= '%02d:00:00' % hours %>"
files:
env:
ood_shell: /bin/bash
Приведенный выше пример создаст
/etc/ood/config
└── apps
├── bc_desktop
│ ├── my_cluster.yml
│ └── submit
│ └── submit.yml.erb
└── files
└── env
env
создаст файл key=value
. Обратите внимание на регистры ключей.
$ cat /etc/ood/config/apps/files/env
OOD_SHELL=/bin/bash
submit
создаст каталог submit с файлом submit.yml.erb
, содержащим
сырые данные, которые вы настроили. Обратите внимание, что конфигурация — это сырые данные, а не yaml, как и другие конфигурации. Это сделано для поддержки Ruby ERB темплейтинга, который не легко форматируется при чтении ansible как yaml.
$ cat /etc/ood/config/apps/bc_desktop/submit/submit.yml.erb
---
script:
native:
- "-t"
- "<%= '%02d:00:00' % hours %>"
$ cat /etc/ood/config/apps/bc_desktop/submit/my_cluster.yml
title: "remote desktop"
cluster: my_cluster
attributes:
hours:
value: 1
desktop: "xfce"
Open Id Connect
Существует два способа настроить Apache для mod_auth_openidc
Первый и самый простой — использовать словарь ood_auth_openidc
, чтобы сгенерировать отдельный конфигурационный файл для конфигураций, связанных с OIDC.
Второй способ — позволить ood-portal-generator записать конфигурации OIDC напрямую в файл ood-portal.conf
, используя именованные переменные oidc_*
, такие как oidc_provider_metadata_url
и oidc_client_id
.
Вы можете просмотреть значения по умолчанию для oidc, чтобы увидеть полный список доступных переменных.
Если вы используете ansible шаблон для генерации файла ood-portal.conf
, тогда вам нужен дополнительный флаг oidc_settings_samefile
, установленный в true.
пример ood_auth_openidc
ood_auth_openidc:
OIDCSessionMaxDuration: 28888
OIDCClientID: myid
OIDCProviderMetadataURL: https://localhost/
OIDCCryptoPassphrase: mycryptopass
"LDAPTrustedGlobalCert CA_BASE64": /etc/ssl/my/cert/path
default_auth_openidc:
OIDCRedirectURI: "https://{{ servername }}{{ oidc_uri }}"
OIDCSessionInactivityTimeout: 28800
OIDCSessionMaxDuration: 28800
OIDCRemoteUserClaim: preferred_username
OIDCPassClaimsAs: environment
OIDCStripCookies: mod_auth_openidc_session mod_auth_openidc_session_chunks mod_auth_openidc_session_0 mod_auth_openidc_session_1
Это создаст файл auth_openidc.conf
с перечисленными key value
, объединенными с значениями по умолчанию.
Значения, определенные в ood_auth_openidc
, перезаписывают любые значения из default_auth_openidc
.
Смотрите auth_openidc для получения дополнительной информации об этом модуле.
Установка Dex
Чтобы установить dex для OIDC, установите флаг install_ondemand_dex
в true, и он установит пакет.
Участие
Если вы столкнулись с проблемой, у вас есть запрос на функцию или вы исправили какую-то ошибку, дайте нам знать! PRы приветствуются! Даже если у вас есть просто вопрос, не стесняйтесь открывать билет.
Installs and configures Open OnDemand on various Linux distributions.
ansible-galaxy install OSC/ood-ansible