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