aiida
Ansible Роль: marvel-nccr.aiida
Ansible роль, которая устанавливает и настраивает AiiDA на Ubuntu, RHEL, CentOS и Fedora.
Роль:
- Устанавливает и запускает службы PostgreSQL и RabbitMQ
- Устанавливает необходимую версию Python
- Создает виртуальное окружение Python 'aiida' и устанавливает в него aiida-core и плагины
- Создает виртуальное окружение Python 'jupyter' и устанавливает Jupyter и Jupyter Lab, затем связывает окружение как ядро.
- Добавляет virtualenwrapper для управления виртуальными окружениями.
- Создает профиль AiiDA и запускает демон
- Запускает AiiDA REST API
- Настраивает локальные коды для плагинов AiiDA (где определяются пути к кодам)
- Настраивает псевдопотенциальные семьи в профиле AiiDA
Установка
ansible-galaxy install marvel-nccr.aiida
Переменные роли
См. defaults/main.yml
Пример плейбука
- hosts: servers
roles:
- role: marvel-nccr.aiida
Для полноценного использования JupyterLab, установите nodejs, например, используя geerlingguy.nodejs:
- hosts: servers
tasks:
- include_role:
name: geerlingguy.nodejs
vars:
nodejs_version: 12.x
nodejs_install_npm_user: root
- include_role:
name: marvel-nccr.aiida
Примечание: При создании контейнера Docker переменную jupyter_ip: "0.0.0.0"
следует установить, чтобы aiida-jupyterlab
правильно открывал порт.
Использование
После выполнения, пользователь может "активировать" окружение aiida в терминале с помощью:
$ workon aiida
(aiida) $ verdi status
verdi status
✔ config dir: /root/.aiida
✔ profile: На профиле name-with-dashes
✔ repository: /root/.aiida/repository/name-with-dashes
✔ postgres: Подключен как aiida@localhost:5432
✔ rabbitmq: Подключен как amqp://guest:[email protected]:5672?heartbeat=600
✔ daemon: Демон работает как PID 9484 с 2020-11-30 21:51:30
Чтобы запустить сервер jupyter lab:
$ aiida-jupyterlab
...
Чтобы получить доступ к блокноту, откройте этот файл в браузере:
file:///root/.local/share/jupyter/runtime/nbserver-14617-open.html
Или скопируйте и вставьте один из этих URL:
http://localhost:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
или http://127.0.0.1:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
Разработка и тестирование
Эта роль использует Molecule и Docker для тестирования.
После установки Docker:
Клонируйте репозиторий в пакет под именем marvel-nccr.aiida
(папка должна называться так же, как имя в Ansible Galaxy)
git clone https://github.com/marvel-nccr/ansible-role-aiida marvel-nccr.aiida
cd marvel-nccr.aiida
Затем выполните:
pip install -r requirements.txt # Устанавливает molecule
molecule test # запускает тесты
или используйте tox (см. tox.ini
):
pip install tox
tox
Для ручного тестирования созданного контейнера Docker сначала выполните:
tox converge
Это запустит роль ansible, оставляя контейнер в работающем состоянии. Рекомендуемый способ работы с контейнером - использовать расширение Docker для VS Code. С его помощью вы сможете прикрепить экземпляр Visual Studio Code:
Внутри контейнера выполните aiida-jupyterlab
, и вы сможете получить доступ к предоставленному URL через ваш локальный браузер.
Когда вы закончите с контейнером, уничтожьте его с помощью:
tox destroy
Стиль кода
Стиль кода форматируется и проверяется с помощью pre-commit.
pip install pre-commit
pre-commit run -all
Развертывание
Развертывание в Ansible Galaxy автоматизировано через GitHub Actions.
Просто пометьте релиз vX.Y.Z
, чтобы запустить CI и рабочий процесс релиза.
Обратите внимание, что релиз будет завершен только в том случае, если тесты CI пройдут.
Лицензия
MIT
Контакт
Пожалуйста, направляйте запросы по Quantum Mobile и связанным ansible ролям на почтовый список AiiDA.
An ansible role that installs and configures [AiiDA](http://www.aiida.net/) on Ubuntu, RHEL, CentOS and Fedora.
ansible-galaxy install marvel-nccr/ansible-role-aiida