aiida

CI (debian) CI (redhat) Ansible Role Release

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:

VS Code Docker extension

Внутри контейнера выполните 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
Лицензия
other
Загрузки
1807
Владелец
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation