Skip to content

IBM/ansible-scale-demo

Repository files navigation

ansible-scale-demo

Sample Ansible® playbooks to deploy a minimal IBM Spectrum Scale™ demo environment (single-node cluster, including file system). The playbooks are tailored to work with virtual machine images hosted on the IBM Solutions Cloud for Enablement and Co-Creation (CECC), but can be adjusted for other environments — see Scope for details. The project uses the official Spectrum Scale deployment repository.

Getting Started

  1. Clone the repository, including submodules:

    git clone --recurse-submodules https://github.com/IBM/ansible-scale-demo.git

    Note that this project repository uses Git submodules, hence you'll need to add the --recurse-submodules option.

  2. Change your working directory to the cloned repository:

    cd ansible-scale-demo/
  3. Adjust the configuration:

    vi config
    • Enter the IP address of your target host (top of the file):

      ...
      node1 ansible_host=<your IP address>
      ...
    • Verify that the path to the Spectrum Scale installation package is correct:

      ...
      scale_install_localpkg_path=/path/to/Spectrum_Scale_Data_Management-5.1.2.0-ppc64LE-Linux-install
      ...
    • Optionally, enter the desired username and password for logging in to the Graphical User Interface (GUI) (bottom of the file):

      ...
      scale_gui_admin_user=<your username>
      scale_gui_admin_password=<your password>
      ...

      Note that this is not the SSH user / password you use to log in to your target host. Instead, this is a new account that will be created in the Spectrum Scale GUI, only.

  4. Generate a new SSH key pair to be used to log in to your target host:

    ssh-keygen

    Simply press ENTER on all prompts to accept default values.

  5. Authorize the SSH key with your target host:

    ssh-copy-id cecuser@<your IP address>

    You will be prompted to enter the password for your target host.

  6. Verify that you can now log in to your target host without being prompted for a password:

    ssh cecuser@<your IP address> date
  7. If the previous command succeeds — without prompting you for a password — then you can run the Ansible playbook to deploy the Spectrum Scale demo environment onto your target host:

    ansible-playbook -i config playbook.yml

    The playbook will run for approximately 10-15 Minutes.

  8. After the Ansible playbook has completed successfully, you can log in to the Graphical User Interface (GUI) of your Spectrum Scale demo environment by opening the following URL in a web browser:

    https://<your IP address>/

    Use the username and password you had entered into the config file (default: admin / password):

    GUI Login

  9. Optionally run the gpfsperf.yml playbook to generate load on the demo environment:

    ansible-playbook -i config gpfsperf.yml

    The playbook will run for approximately 1 hour.

    While the playbook is running, switch back to your web browser and navigate to 'Monitoring' → 'Statistics'. Click on 'Customize chart' → 'Edit' (three dots in the top right corner) and select the following performance metrics:

    • Resource type: IBM Spectrum Scale client
    • Aggregation level: File System
    • Name: gpfs01
    • Metrics: Bytes Read, Bytes Written

    Finally, click 'Apply' to update the chart and click '5 minutes' (bottom right) to visualize performance in real-time. You should see output similar to this:

    GUI Statistics

    Other noteworthy panels to explore:

    • Monitoring → Dashboard
    • Nodes → select node → View Details
    • Files → File Systems → gpfs01 → View Details

Scope

The file playbook.yml is used to bootstrap a minimal IBM Spectrum Scale™ demo environment:

  • Install required packages and their dependencies
  • Create single-node cluster
  • Create and mount file system
  • Initialize Graphical User Interface (GUI)

The file gpfsperf.yml is used to create test data for generating synthetic load on the demo environment.

Playbooks are tailored to work with Red Hat® Enterprise Linux® images hosted on IBM Solutions Cloud for Enablement and Co-Creation (CECC). This includes the following characteristics:

  • Non-root account for logging in (ansible_user), sudo usage for gaining root privileges (ansible_become)
  • Permit local root logins to avoid sudo-wrapper configuration (PermitRootLogin without-password for local connections)
  • Workarounds for dynamic hostnames (node1 IP alias, additional invocation of mmchnode --perfmon)

The configuration can be adjusted to support other platforms as well, including a virtual machine on your laptop...

Customization

The sample playbooks contained within this project can be adjusted to support different platforms, and they can be extended to provision larger, more complex Spectrum Scale clusters. Refer to the Spectrum Scale FAQ for details on supported combinations. You may need to change variable definitions in the config file, add roles to playbook.yml, and/or define additional variables. Refer to the Spectrum Scale deployment project for details.

Following is a (non-exhaustive) listing of adjustments to consider:

  • Support for other platforms, e.g. Intel vs. Power

    The Spectrum Scale deployment project supports numerous operating systems and platforms (see OS support for details). In fact, the same playbook can be used to install Spectrum Scale on both, x86_64 and ppc64LE. The Spectrum Scale installation packages, however, are platform dependent — you will need to provide the appropriate installation package for the platform you're deploying to. See Prerequisites for details.

  • More cluster nodes

    All hosts listed in the inventory (config file) will be provisioned as members of the same Spectrum Scale cluster. Expanding the demo environment to multiple nodes (e.g. for high-availability testing) is as simple as adding more managed hosts.

    One important aspect to consider with multi-node clusters is the assignment of node roles. Here is an exemplary configuration for a three-node cluster:

    [scale]
    node1  scale_cluster_quorum=true  scale_cluster_manager=true
    node2  scale_cluster_quorum=true  scale_cluster_manager=true
    node3  scale_cluster_quorum=true  scale_cluster_manager=false  scale_gui_collector=true
  • Additional functionality

    The Spectrum Scale deployment project allows for configuring various optional components, such as Cluster Export Services (CES), Active File Management (AFM), File Audit Logging, and Call Home. Additional roles, as well as additional variables need to be defined to enable these functions. There is a comprehensive set of examples available in the samples/ directory of the project's Git repository.

Prerequisites

Ansible® version 2.9 is required to run this project. It can be installed with the following command (see documentation for details):

pip install ansible==2.9

IBM Spectrum Scale™ installation packages are required by this project — they need to be downloaded separately. Location of the self-extracting archive is specified with the scale_install_localpkg_path variable.

There are different options for obtaining installation packages:

Copyright & License

Copyright IBM Corporation 2021, released under the terms of the Apache License 2.0.

About

Sample Ansible playbooks to deploy a minimal single-node Spectrum Scale cluster

Resources

License

Stars

Watchers

Forks

Packages

No packages published