marvel-nccr.aiida
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
開発とテスト
このロールはMoleculeとDockerを使用してテストします。
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のインスタンスをアタッチできます。
コンテナ内で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