marvel-nccr.aiida
Ansible-Rolle: marvel-nccr.aiida
Eine Ansible-Rolle, die AiiDA auf Ubuntu, RHEL, CentOS und Fedora installiert und konfiguriert.
Die Rolle:
- Installiert und startet die PostgreSQL- und RabbitMQ-Dienste
- Installiert eine festgelegte Python-Version
- Erstellt eine 'aiida' Python-virtuelle Umgebung und installiert aiida-core und Plugins darin
- Erstellt eine 'jupyter' Python-virtuelle Umgebung und installiert Jupyter und Jupyter Lab darin, und verknüpft dann die virtuelle Umgebung als Kernel.
- Fügt virtualenwrapper hinzu, um die virtuellen Umgebungen zu verwalten.
- Erstellt ein AiiDA-Profil und startet den Daemon
- Startet die AiiDA REST API
- Richtet localhost-Codes für die AiiDA-Plugins ein (wo Codepfade definiert sind)
- Richtet Pseudopotential-Familien im AiiDA-Profil ein
Installation
ansible-galaxy install marvel-nccr.aiida
Rollenvariablen
Siehe defaults/main.yml
Beispiel-Playbook
- hosts: servers
roles:
- role: marvel-nccr.aiida
Für die vollständige Nutzung von JupyterLab installieren Sie nodejs, z.B. mit 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
Hinweis: Beim Erstellen eines Docker-Containers sollte die Variable jupyter_ip: "0.0.0.0"
gesetzt werden, damit aiida-jupyterlab
den Port korrekt freigeben kann.
Nutzung
Sobald Sie es ausgeführt haben, kann der Benutzer die aiida-Umgebung im Terminal aktivieren mit:
$ workon aiida
(aiida) $ verdi status
verdi status
✔ config dir: /root/.aiida
✔ profile: Auf Profilname-mit-bindestrichen
✔ repository: /root/.aiida/repository/name-with-dashes
✔ postgres: Verbunden als aiida@localhost:5432
✔ rabbitmq: Verbunden als amqp://guest:[email protected]:5672?heartbeat=600
✔ daemon: Daemon läuft als PID 9484 seit 2020-11-30 21:51:30
Um einen Jupyter Lab-Server zu starten:
$ aiida-jupyterlab
...
Um auf das Notebook zuzugreifen, öffnen Sie diese Datei in einem Browser:
file:///root/.local/share/jupyter/runtime/nbserver-14617-open.html
Oder kopieren und fügen Sie eine dieser URLs ein:
http://localhost:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
oder http://127.0.0.1:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
Entwicklung und Tests
Diese Rolle verwendet Molecule und Docker für Tests.
Nachdem Sie Docker installiert haben:
Klonen Sie das Repository in ein Paket mit dem Namen marvel-nccr.aiida
(der Ordner muss den gleichen Namen wie der Ansible Galaxy-Name haben)
git clone https://github.com/marvel-nccr/ansible-role-aiida marvel-nccr.aiida
cd marvel-nccr.aiida
Führen Sie dann aus:
pip install -r requirements.txt # Installiert Molecule
molecule test # führt Tests aus
oder verwenden Sie tox (siehe tox.ini
):
pip install tox
tox
Um den erstellten Docker-Container manuell zu testen, führen Sie zuerst aus:
tox converge
Dies wird die Ansible-Rolle ausführen und den Container am Laufen lassen. Die empfohlene Methode, um mit dem Container zu interagieren, ist dann die Verwendung der VS Code Docker-Erweiterung. Mit dieser können Sie dann eine Instanz von Visual Studio Code anschließen:
Führen Sie im Container aiida-jupyterlab
aus, und Sie können die bereitgestellte URL von Ihrem lokalen Browser aus aufrufen.
Wenn Sie mit dem Container fertig sind, zerstören Sie den Container mit:
tox destroy
Code-Stil
Der Code-Stil wird mit pre-commit formatiert und überprüft.
pip install pre-commit
pre-commit run -all
Bereitstellung
Die Bereitstellung an Ansible Galaxy ist automatisiert via GitHub Aktionen.
Einfach einen Release-Tag vX.Y.Z
setzen, um den CI- und Release-Workflow zu starten.
Hinweis: Der Release wird nur abgeschlossen, wenn die CI-Tests bestanden werden.
Lizenz
MIT
Kontakt
Bitte richten Sie Anfragen bezüglich Quantum Mobile und zugehörigen Ansible-Rollen an die AiiDA-Mailingliste.
An ansible role that installs and configures [AiiDA](http://www.aiida.net/) on Ubuntu, RHEL, CentOS and Fedora.
ansible-galaxy install marvel-nccr.aiida