OphidiaBigData.ophidia-cluster

Ophidia Cluster Rolle

Diese Ansible-Rolle installiert und konfiguriert ein ECAS-Cluster und bietet eine vollständige Umgebung für die wissenschaftliche Datenanalyse basierend auf dem Ophidia-Framework, JupyterHub und einem Grafana-basierten Überwachungssystem.

Einführung

Dieses Repository enthält Ansible-Rollen, die auf Ansible Galaxy veröffentlicht sind: https://galaxy.ansible.com/OphidiaBigData/ophidia-cluster/

Rollenvariablen

  1. cert_passwd: das Passwort für die Zertifikate und das Benutzerkonto
  2. ophdb_passwd: das Passwort für MySQL
  3. oph_user: Benutzer, der das Ophidia-Framework ausführt
  4. oph_account_user: Benutzername des zu erstellenden Ophidia-Benutzerkontos
  5. oph_account_passwd: Passwort des zu erstellenden Ophidia-Benutzerkontos
  6. base_path: Basisverzeichnis für den gemeinsamen Datenordner
  7. io_prefix: Hostnamen-Präfix der Ophidia-I/O-Knoten
  8. io_node_number: Anzahl der I/O-Knoten im Cluster
  9. io_hostnames: Liste der Hostnamen der Ophidia-I/O-Knoten
  10. io_cpus: Anzahl der Kerne für Ophidia I/O-Knoten
  11. io_ips: Liste der IP-Adressen der Ophidia-I/O-Knoten
  12. server_hostname: Hostname des Ophidia-Serverknotens
  13. private_server_ip: private IP-Adresse des Ophidia-Serverknotens
  14. public_server_ip: öffentliche IP-Adresse des Ophidia-Serverknotens
  15. nfs_subnet: Subnetz für die Ophidia I/O-Compute-Knoten (für NFS-Ordnerspeicherung)
  16. mysql_subnet: Subnetz für den MySQL-Server auf den Clusterknoten (für Datenbankberechtigungen)
  17. deploy_type: Art der Bereitstellung ('installieren', 'konfigurieren' oder 'komplett')
  18. node_type: Art des bereitzustellenden Knotens ('server', 'io' oder 'einzel')
  19. user_home: Pfad des Benutzer-Home-Verzeichnisses
  20. force_reinstall: Flag (falsch oder wahr), das definiert, ob die Instanz aktualisiert werden soll, wenn die Rolle ein zweites Mal ausgeführt wird

Abhängigkeiten

Benötigt die Rollen grycap.nfs und grycap.slurm.

Anforderungen

Benötigt mindestens Ansible v2.3.

Beispiel Playbook

Ein Beispiel für ein Playbook zur Installation und Konfiguration des ECAS-Clusters:

- hosts: oph-server
  pre_tasks:
   - name: Fakten von oph-io sammeln
     setup:
     delegate_to: "{{ item }}"
     delegate_facts: true
     loop: "{{ groups['oph-io'] }}"

   - name: Erstellt NFS-Shared-Verzeichnis
     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-%" }

Weitere Dokumentation

Über das Projekt

Ophidia Cluster

Installieren
ansible-galaxy install OphidiaBigData.ophidia-cluster
GitHub Repository
Lizenz
Unknown
Downloads
466
Besitzer