marvel-nccr.aiida
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:
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.
An ansible role that installs and configures [AiiDA](http://www.aiida.net/) on Ubuntu, RHEL, CentOS and Fedora.
ansible-galaxy install marvel-nccr.aiida