marvel-nccr.aiida

CI (debian) CI (redhat) Ansible Role Release

Rol de Ansible: marvel-nccr.aiida

Una rol de ansible que instala y configura AiiDA en Ubuntu, RHEL, CentOS y Fedora.

La rol:

  • Instala y inicia los servicios de PostgreSQL y RabbitMQ.
  • Instala una versión específica de Python.
  • Crea un entorno virtual de Python llamado 'aiida' e instala aiida-core y plugins en él.
  • Crea un entorno virtual de Python llamado 'jupyter' e instala Jupyter y Jupyter Lab en él, luego lo vincula como un kernel.
  • Añade virtualenwrapper para gestionar los entornos virtuales.
  • Crea un perfil de AiiDA y inicia el daemon.
  • Inicia la API REST de AiiDA.
  • Configura los códigos de localhost para los plugins de AiiDA (donde se definen las rutas de código).
  • Configura familias de pseudopotenciales en el perfil de AiiDA.

Instalación

ansible-galaxy install marvel-nccr.aiida

Variables de la Rol

Ver defaults/main.yml

Ejemplo de Playbook

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

Para un uso completo de JupyterLab, instala nodejs, por ejemplo, usando 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

Nota: Al construir un contenedor Docker, la variable jupyter_ip: "0.0.0.0" debe estar configurada, para que aiida-jupyterlab exponga correctamente el puerto.

Uso

Una vez ejecutado, el usuario puede "activar" el entorno aiida en la terminal usando:

$ workon aiida
(aiida) $ verdi status
verdi status
 ✔ directorio de configuración:  /root/.aiida
 ✔ perfil:     En perfil name-with-dashes
 ✔ repositorio:  /root/.aiida/repository/name-with-dashes
 ✔ postgres:    Conectado como aiida@localhost:5432
 ✔ rabbitmq:    Conectado como amqp://guest:[email protected]:5672?heartbeat=600
 ✔ daemon:      El daemon está corriendo como PID 9484 desde 2020-11-30 21:51:30

Para iniciar un servidor de jupyter lab:

$ aiida-jupyterlab
...
    Para acceder al notebook, abre este archivo en un navegador:
        file:///root/.local/share/jupyter/runtime/nbserver-14617-open.html
    O copia y pega una de estas URLs:
        http://localhost:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
     o http://127.0.0.1:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2

Desarrollo y pruebas

Esta rol usa Molecule y Docker para las pruebas.

Después de instalar Docker:

Clona el repositorio en un paquete llamado marvel-nccr.aiida (la carpeta debe tener el mismo nombre que el de Ansible Galaxy)

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

Luego ejecuta:

pip install -r requirements.txt  # Instala molecule
molecule test  # ejecuta las pruebas

o usa tox (ver tox.ini):

pip install tox
tox

Para probar manualmente el contenedor Docker creado, primero ejecuta:

tox converge

Esto ejecutará la rol de ansible, dejando el contenedor corriendo. La manera recomendada de interactuar con el contenedor es usar la extensión Docker de VS Code. Usando esto, puedes adjuntar una instancia de visual studio code:

Extensión Docker de VS Code

Dentro del contenedor ejecuta aiida-jupyterlab, y podrás acceder a la URL proporcionada desde tu navegador local.

Cuando termines con el contenedor, destrúyelo con:

tox destroy

Estilo de código

El estilo de código está formateado y revisado con pre-commit.

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

Despliegue

El despliegue a Ansible Galaxy está automatizado a través de GitHub Actions. Simplemente etiqueta una versión vX.Y.Z para iniciar el flujo de trabajo de CI y publicación. Nota, la publicación solo se completará si las pruebas de CI pasan.

Licencia

MIT

Contacto

Por favor dirige consultas sobre Quantum Mobile y los roles de ansible asociados a la lista de correos de AiiDA.

Acerca del proyecto

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

Instalar
ansible-galaxy install marvel-nccr.aiida
Licencia
other
Descargas
1.8k
Propietario
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation