marvel-nccr.aiida

CI (debian) CI (redhat) Ansible Role Release

Rola Ansible: marvel-nccr.aiida

To jest rola Ansible, która instaluje i konfiguruje AiiDA na Ubuntu, RHEL, CentOS i Fedora.

Rola:

  • Instaluje i uruchamia usługi PostgreSQL i RabbitMQ
  • Instaluje wyznaczoną wersję Pythona
  • Tworzy wirtualne środowisko Pythona 'aiida' i instaluje w nim aiida-core oraz wtyczki
  • Tworzy wirtualne środowisko Pythona 'jupyter' i instaluje w nim Jupyter oraz Jupyter Lab, następnie łączy to środowisko jako kernel.
  • Dodaje virtualenwrapper do zarządzania wirtualnymi środowiskami.
  • Tworzy profil AiiDA i uruchamia demon
  • Uruchamia interfejs API REST AiiDA
  • Konfiguruje kody localhost dla wtyczek AiiDA (gdzie ścieżki kodów są definiowane)
  • Ustawia rodziny pseudopotencjałów w profilu AiiDA

Instalacja

ansible-galaxy install marvel-nccr.aiida

Zmienne roli

Zobacz defaults/main.yml

Przykładowy playbook

- hosts: servers
  roles:
  - role: marvel-nccr.aiida

Aby w pełni korzystać z JupyterLab, zainstaluj nodejs, np. przy pomocy 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

Uwaga: Podczas budowania kontenera Docker, zmienna jupyter_ip: "0.0.0.0" powinna być ustawiona, aby aiida-jupyterlab poprawnie wyeksponował port.

Użycie

Po uruchomieniu, użytkownik może "aktywować" środowisko aiida w terminalu używając:

$ workon aiida
(aiida) $ verdi status
verdi status
 ✔ katalog konfiguracyjny:  /root/.aiida
 ✔ profil:     Na profilu z myślnikami
 ✔ repozytorium:  /root/.aiida/repository/nazwa-z-myślnikami
 ✔ postgres:    Połączono jako aiida@localhost:5432
 ✔ rabbitmq:    Połączono jako amqp://guest:[email protected]:5672?heartbeat=600
 ✔ demon:      Demon działa jako PID 9484 od 2020-11-30 21:51:30

Aby uruchomić serwer jupyter lab:

$ aiida-jupyterlab
...
    Aby uzyskać dostęp do notatnika, otwórz ten plik w przeglądarce:
        file:///root/.local/share/jupyter/runtime/nbserver-14617-open.html
    Lub skopiuj i wklej jeden z tych adresów URL:
        http://localhost:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
     lub http://127.0.0.1:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2

Rozwój i testowanie

Ta rola używa Molecule i Docker do testów.

Po zainstalowaniu Dockera:

Sklonuj repozytorium do pakietu nazwanego marvel-nccr.aiida (folder musi mieć taką samą nazwę jak nazwa Ansible Galaxy)

git clone https://github.com/marvel-nccr/ansible-role-aiida marvel-nccr.aiida
cd marvel-nccr.aiida

Następnie uruchom:

pip install -r requirements.txt  # Instaluje molecule
molecule test  # uruchamia testy

lub użyj tox (zobacz tox.ini):

pip install tox
tox

Aby ręcznie przetestować utworzony kontener docker, najpierw uruchom:

tox converge

To uruchomi rolę ansible, pozostawiając kontener działającym. Zalecanym sposobem interakcji z kontenerem jest użycie rozszerzenia Docker VS Code. Za pomocą tego narzędzia możesz dołączyć instancję Visual Studio Code:

Rozszerzenie Docker VS Code

Wewnętrz kontenera uruchom aiida-jupyterlab, a będziesz mógł uzyskać dostęp do dostarczonego URL z lokalnej przeglądarki.

Kiedy skończysz z kontenerem, zniszcz kontener używając:

tox destroy

Styl kodu

Styl kodu jest formatowany i linterowany za pomocą pre-commit.

pip install pre-commit
pre-commit run --all

Wdrożenie

Wdrożenie do Ansible Galaxy jest zautomatyzowane za pomocą GitHub Actions. Po prostu oznacz wydań vX.Y.Z, aby zainicjować CI i proces wydania. Uwaga, wydanie zakończy się sukcesem tylko wtedy, gdy testy CI przejdą.

Licencja

MIT

Kontakt

Proszę kierować zapytania dotyczące Quantum Mobile i związanych ról ansible do listy mailingowej AiiDA.

O projekcie

An ansible role that installs and configures [AiiDA](http://www.aiida.net/) on Ubuntu, RHEL, CentOS and Fedora.

Zainstaluj
ansible-galaxy install marvel-nccr.aiida
Licencja
other
Pobrania
1.8k
Właściciel
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation