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を参照してください

例となるプレイブック

- 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
 ✔ config dir:  /root/.aiida
 ✔ profile:     プロファイル名(ハイフンあり)
 ✔ repository:  /root/.aiida/repository/name-with-dashes
 ✔ postgres:    aiida@localhost:5432に接続済
 ✔ rabbitmq:    amqp://guest:[email protected]:5672?heartbeat=600に接続済
 ✔ daemon:      デーモンは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 Extensionを使用することです。 これを使用して、Visual Studio Codeのインスタンスをアタッチできます。

VS Code Docker extension

コンテナ内でaiida-jupyterlabを実行すると、ローカルブラウザから提供されたURLにアクセスできるようになります。

コンテナが使い終わったら、次のコマンドでコンテナを破棄します。

tox destroy

コードスタイル

コードスタイルはpre-commitを使用してフォーマットとリントされています。

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

デプロイ

Ansible GalaxyへのデプロイはGitHub Actionsを使用して自動化されています。リリースを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