marvel-nccr.aiida

CI (debian) CI (redhat) Ansible Role Release

Rôle Ansible : marvel-nccr.aiida

Un rôle Ansible qui installe et configure AiiDA sur Ubuntu, RHEL, CentOS et Fedora.

Le rôle :

  • Installe et démarre les services PostgreSQL et RabbitMQ
  • Installe une version Python désignée
  • Crée un environnement virtuel Python 'aiida' et y installe aiida-core et les plugins
  • Crée un environnement virtuel Python 'jupyter' et y installe Jupyter et Jupyter Lab, puis lie l'environnement virtuel comme noyau.
  • Ajoute virtualenwrapper pour gérer les environnements virtuels.
  • Crée un profil AiiDA et démarre le démon
  • Démarre l'API REST d'AiiDA
  • Configure les codes localhost pour les plugins AiiDA (où les chemins de code sont définis)
  • Configure des familles de pseudopotentiels dans le profil AiiDA

Installation

ansible-galaxy install marvel-nccr.aiida

Variables de rôle

Voir defaults/main.yml

Exemple de Playbook

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

Pour utiliser pleinement JupyterLab, installez nodejs, par exemple en utilisant 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

Remarque : Lors de la création d'un conteneur Docker, la variable jupyter_ip: "0.0.0.0" doit être définie, afin que aiida-jupyterlab expose correctement le port.

Utilisation

Une fois exécuté, l'utilisateur peut "activer" l'environnement aiida dans le terminal en utilisant :

$ workon aiida
(aiida) $ verdi status
verdi status
 ✔ répertoire de configuration :  /root/.aiida
 ✔ profil :     Sur le nom de profil avec des tirets
 ✔ dépôt :  /root/.aiida/repository/name-with-dashes
 ✔ postgres :    Connecté en tant qu'aiida@localhost:5432
 ✔ rabbitmq :    Connecté en tant qu'amqp://guest:[email protected]:5672?heartbeat=600
 ✔ daemon :      Le démon fonctionne avec le PID 9484 depuis le 30-11-2020 21:51:30

Pour démarrer un serveur jupyter lab :

$ aiida-jupyterlab
...
    Pour accéder au notebook, ouvrez ce fichier dans un navigateur :
        file:///root/.local/share/jupyter/runtime/nbserver-14617-open.html
    Ou copiez et collez l'une de ces URL :
        http://localhost:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
     ou http://127.0.0.1:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2

Développement et test

Ce rôle utilise Molecule et Docker pour les tests.

Après avoir installé Docker :

Clonez le dépôt dans un paquet nommé marvel-nccr.aiida (le dossier doit avoir le même nom que celui d'Ansible Galaxy)

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

Ensuite, exécutez :

pip install -r requirements.txt  # Installe Molecule
molecule test  # exécute les tests

ou utilisez tox (voir tox.ini) :

pip install tox
tox

Pour tester manuellement le conteneur Docker créé, exécutez d'abord :

tox converge

Cela exécutera le rôle Ansible, laissant le conteneur en cours d'exécution. La méthode recommandée pour interagir avec le conteneur est ensuite d'utiliser l'extension Docker de VS Code. Avec cela, vous pouvez ensuite attacher une instance de Visual Studio Code :

Extension Docker de VS Code

À l'intérieur du conteneur, exécutez aiida-jupyterlab, et vous pourrez accéder à l'URL fournie depuis votre navigateur local.

Lorsque vous avez fini avec le conteneur, détruisez le conteneur avec :

tox destroy

Style de code

Le style de code est formaté et vérifié avec pre-commit.

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

Déploiement

Le déploiement sur Ansible Galaxy est automatisé via GitHub Actions. Il suffit de taguer une version vX.Y.Z pour initier le CI et le flux de travail de publication. Notez que la publication ne sera complète que si les tests CI réussissent.

Licence

MIT

Contact

Veuillez diriger les demandes de renseignements concernant Quantum Mobile et les rôles ansible associés vers la liste de diffusion AiiDA.

À propos du projet

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

Installer
ansible-galaxy install marvel-nccr.aiida
Licence
other
Téléchargements
1.8k
Propriétaire
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation