OphidiaBigData.ophidia-cluster
Ophidiaクラスターロール
このAnsibleロールは、Ophidiaフレームワーク、JupyterHub、Grafanaベースの監視システムに基づいた科学データ分析のための完全な環境を提供するECASクラスタをデプロイおよび構成します。
はじめに
このリポジトリには、Ansible Galaxyで公開されているAnsibleロールが含まれています: https://galaxy.ansible.com/OphidiaBigData/ophidia-cluster/
ロール変数
- cert_passwd: 証明書とユーザーアカウントのパスワード
- ophdb_passwd: MySQLのパスワード
- oph_user: Ophidiaフレームワークを実行するユーザー
- oph_account_user: 作成されるOphidiaユーザーアカウントのユーザー名
- oph_account_passwd: 作成されるOphidiaユーザーアカウントのパスワード
- base_path: 共有データフォルダーのベースパス
- io_prefix: Ophidia IOノードのホスト名プレフィックス
- io_node_number: クラスタ内で考慮されるIOノードの数
- io_hostnames: Ophidia IOノードのホスト名のリスト
- io_cpus: Ophidia IOノードのコア数
- io_ips: Ophidia IOノードのIPアドレスのリスト
- server_hostname: Ophidiaサーバーノードのホスト名
- private_server_ip: OphidiaサーバーノードのプライベートIPアドレス
- public_server_ip: OphidiaサーバーノードのパブリックIPアドレス
- nfs_subnet: Ophidia io-computeノードのためのサブネット(NFSフォルダーのマウント用)
- mysql_subnet: クラスタノード上のMySQLサーバーのサブネット(データベースの権限付与用)
- deploy_type: デプロイタイプ('install'、'configure'、または'complete')
- node_type: デプロイするノードの種類('server'、'io'、または'single')
- user_home: ユーザーホームディレクトリのパス
- force_reinstall: ロールが2回目に実行されるときにインスタンスを更新するかどうかを定義するフラグ(falseまたはtrue)
依存関係
grycap.nfsおよびgrycap.slurmのロールが必要です。
要件
少なくともAnsible v2.3が必要です。
例のプレイブック
ECASクラスタをインストールおよび構成するためのプレイブックの例:
- hosts: oph-server
pre_tasks:
- name: oph-ioからの事実を収集
setup:
delegate_to: "{{ item }}"
delegate_facts: true
loop: "{{ groups['oph-io'] }}"
- name: NFS共有ディレクトリを作成
file: path=/data state=directory owner=root group=root
roles:
- { role: 'OphidiaBigData.ophidia-cluster', node_type: 'server', deploy_type: 'complete', server_hostname: "{{ansible_hostname}}", io_hostnames: "{{ groups['oph-io']|map('extract', hostvars, 'ansible_hostname')|list }}", io_ips: "{{ groups['oph-io']|map('extract', hostvars, ['ansible_default_ipv4','address'])|list if 'oph-io' in groups else []}}", private_server_ip: "{{ ansible_default_ipv4.address }}", public_server_ip: "{{ ansible_default_ipv4.address }}", nfs_subnet: 'oph-*', mysql_subnet: 'oph-%'}
- hosts: oph-io
roles:
- { role: 'OphidiaBigData.ophidia-cluster', node_type: 'io', deploy_type: 'complete', server_hostname: "{{ hostvars['oph-server']['ansible_hostname'] }}", io_hostnames: "{{ groups['oph-io']|map('extract', hostvars, 'ansible_hostname')|list if 'oph-io' in groups else []}}", io_ips: "{{ groups['oph-io']|map('extract', hostvars, ['ansible_default_ipv4', 'address'])|list if 'oph-io' in groups else []}}", private_server_ip: "{{ hostvars['oph-server']['ansible_default_ipv4']['address'] }}", public_server_ip: "{{ hostvars['oph-server']['ansible_default_ipv4']['address'] }}", nfs_subnet: "oph-*", mysql_subnet: "oph-%" }
さらなるドキュメント
- Ophidia: http://ophidia.cmcc.it
- インストールと構成: http://ophidia.cmcc.it/documentation/admin/index.html