marvel-nccr.aiida

CI (debian) CI (redhat) Ansible Role Release

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:

VS Code Docker-Erweiterung

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.

Über das Projekt

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

Installieren
ansible-galaxy install marvel-nccr.aiida
GitHub Repository
Lizenz
other
Downloads
1.8k
Besitzer
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation