OphidiaBigData.ophidia-cluster

Ophidia Cluster Role

This Ansible role sets up and configures an ECAS cluster. It provides everything needed for scientific data analysis using the Ophidia framework, JupyterHub, and a Grafana monitoring system.

Introduction

This repository has Ansible roles available on Ansible Galaxy: Ophidia Galaxy

Role Variables

  1. cert_passwd: Password for certificates and user accounts.
  2. ophdb_passwd: Password for MySQL.
  3. oph_user: User who will operate the Ophidia framework.
  4. oph_account_user: Username for the new Ophidia user account.
  5. oph_account_passwd: Password for the new Ophidia user account.
  6. base_path: Main path for the shared data folder.
  7. io_prefix: Hostname prefix for Ophidia IO nodes.
  8. io_node_number: Number of IO nodes in the cluster.
  9. io_hostnames: List of hostnames for Ophidia IO nodes.
  10. io_cpus: Number of CPU cores for Ophidia IO nodes.
  11. io_ips: List of IP addresses for Ophidia IO nodes.
  12. server_hostname: Hostname for the Ophidia server node.
  13. private_server_ip: Private IP address of the Ophidia server node.
  14. public_server_ip: Public IP address of the Ophidia server node.
  15. nfs_subnet: Subnetwork for Ophidia IO computing nodes (for NFS folder mounting).
  16. mysql_subnet: Subnetwork for the MySQL server on cluster nodes (for database access).
  17. deploy_type: Type of deployment ('install', 'configure', or 'complete').
  18. node_type: Type of node to deploy ('server', 'io', or 'single').
  19. user_home: Path to the user's home directory.
  20. force_reinstall: Flag (false or true) to decide if the instance should update when the role is run again.

Dependencies

Requires the grycap.nfs and grycap.slurm roles.

Requirements

Requires at least Ansible version 2.3.

Example Playbook

Here’s an example playbook to install and set up the ECAS cluster:

- hosts: oph-server
  pre_tasks:
   - name: Gather facts from oph-io
     setup:
     delegate_to: "{{ item }}"
     delegate_facts: true
     loop: "{{ groups['oph-io'] }}"

   - name: Create NFS shared directory
     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-%" }

Further Documentation

Informazioni sul progetto

Ophidia Cluster

Installa
ansible-galaxy install OphidiaBigData.ophidia-cluster
Licenza
Unknown
Download
466
Proprietario