A repo of tools for creating software-defined platforms for the ALaSKA P3 project.
This repo is split into two parts:
- An Ansible Galaxy role, stackhpc.cluster-infra, which contains OpenStack Heat templates for creating bare metal instances configured for execution framework clusters.
- Ansible playbooks for integrating with OpenStack services, and creating software middleware platforms on top of ALaSKA infrastructure.
The Heat templates and stackhpc.cluster-infra role are configured locally
through YAML environment files, then invoked through the
alaska-infra.yml
playbook.
First, download and deploy the role from Ansible Galaxy:
cd ansible ; ansible-galaxy install -r requirements.yml -p $PWD/roles
Some example YAML template configurations are available in the config/
subdirectory. To use these, some default parameters should first be
modified:
Name | Description |
---|---|
cluster_name |
Name of the Heat stack to be created, and also stem of the hostnames of compute and controller nodes |
cluster_keypair |
An existing RSA keypair that has been previously uploaded to OpenStack |
cluster_groups |
Definitions for the number of groups of compute nodes in the execution framework infrastructure, and how the compute nodes in each of those roles should be configured |
Infrastructure invocation then takes the form (for example):
ansible-playbook -e @config/openhpc.yml -i ansible/inventory ansible/cluster-infra.yml
Once the infrastructure playbook has run to completion, an inventory
for the newly-created nodes will have been generated in the ansible/
subdirectory. This inventory is suffixed with the value set in
cluster_name
. The cluster software can be deployed and configured
using another playbook (for example):
ansible-playbook -e @config/openhpc.yml -i ansible/inventory_openhpc ansible/openhpc.yml