marvel-nccr.aiida
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:

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.
An ansible role that installs and configures [AiiDA](http://www.aiida.net/) on Ubuntu, RHEL, CentOS and Fedora.
ansible-galaxy install marvel-nccr.aiida