marvel-nccr.aiida

CI (debian) CI (redhat) Ansible Role Release

Ansible角色:marvel-nccr.aiida

一个在Ubuntu、RHEL、CentOS和Fedora上安装和配置AiiDA的Ansible角色。

该角色:

  • 安装并启动PostgreSQL和RabbitMQ服务
  • 安装指定版本的Python
  • 创建一个名为'aiida'的Python虚拟环境,并在其中安装aiida-core和插件
  • 创建一个名为'jupyter'的Python虚拟环境,并在其中安装Jupyter和Jupyter Lab,然后将虚拟环境链接为内核。
  • 添加virtualenwrapper用于管理虚拟环境。
  • 创建AiiDA配置文件并启动守护进程
  • 启动AiiDA REST API
  • 为AiiDA插件配置本地代码(定义代码路径)
  • 在AiiDA配置文件中设置伪势能族

安装

ansible-galaxy install marvel-nccr.aiida

角色变量

请查看defaults/main.yml

示例Playbook

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

要完整使用JupyterLab,请安装nodejs,例如使用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

注意:当构建Docker容器时,变量jupyter_ip: "0.0.0.0"应设置,以便aiida-jupyterlab正确暴露端口。

使用方法

运行后,用户可以使用以下命令在终端中“激活”aiida环境:

$ workon aiida
(aiida) $ verdi status
verdi status
 ✔ 配置目录: /root/.aiida
 ✔ 配置文件: 在配置文件名(带有连字符)中
 ✔ 资源库: /root/.aiida/repository/name-with-dashes
 ✔ postgres:以aiida@localhost:5432连接
 ✔ rabbitmq:以amqp://guest:[email protected]:5672?heartbeat=600连接
 ✔ 守护进程:自2020-11-30 21:51:30起以PID 9484运行

要启动jupyter lab服务器:

$ aiida-jupyterlab
...
    要访问笔记本,请在浏览器中打开此文件:
        file:///root/.local/share/jupyter/runtime/nbserver-14617-open.html
    或复制并粘贴以下其中一个URL:
        http://localhost:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2
     或 http://127.0.0.1:8890/?token=a7086764cda7aba8488a767386d57121429958771a8bccb2

开发与测试

该角色使用MoleculeDocker进行测试。

安装Docker后:

将仓库克隆到一个名为marvel-nccr.aiida的包中(该文件夹名称必须与Ansible Galaxy名称相同)

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

然后运行:

pip install -r requirements.txt  # 安装molecule
molecule test  # 运行测试

或使用tox(请参见tox.ini):

pip install tox
tox

要手动测试创建的docker容器,可以首先运行:

tox converge

这将运行Ansible角色,使容器保持运行状态。 与容器交互的推荐方法是使用VS Code Docker扩展。 然后,您可以附加一个Visual Studio Code实例:

VS Code Docker扩展

在容器内运行aiida-jupyterlab,您将能够从本地浏览器访问提供的URL。

完成后,使用以下命令销毁容器:

tox destroy

代码风格

代码风格采用pre-commit进行格式化和检查。

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

部署

通过GitHub Actions自动化部署到Ansible Galaxy。 只需标记一个发布vX.Y.Z以启动CI和发布工作流程。 注意,只有当CI测试通过时,发布才会完成。

许可证

MIT

联系方式

有关Quantum Mobile及其相关Ansible角色的询问,请直接联系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
许可证
other
下载
1.8k
拥有者
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation