https://github.com/cedadev/jasmin-appliances
Appliances for use with JASMIN Cluster-as-a-Service Project
https://github.com/cedadev/jasmin-appliances
Last synced: about 1 year ago
JSON representation
Appliances for use with JASMIN Cluster-as-a-Service Project
- Host: GitHub
- URL: https://github.com/cedadev/jasmin-appliances
- Owner: cedadev
- Created: 2019-01-18T10:31:59.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-02T11:33:26.000Z (about 2 years ago)
- Last Synced: 2025-04-02T00:24:09.391Z (about 1 year ago)
- Language: Python
- Size: 585 KB
- Stars: 3
- Watchers: 5
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jasmin-appliances
Appliances for use with JASMIN [Cluster-as-a-Service][caas] Project
## How to use this repository
Assuming that you are at the top of a checkout of this repository and a virtual
environment is available at `` created using
`--system-site-packages` flag to ensure `yum` dependencies are available to
Ansible, install all the `pip` dependencies (which may require you to
additionally install `python2-devel` and `gcc` packages through `yum`):
$ virtualenv --system-site-packages
$ source /bin/activate
$ pip install -r requirements.txt
$ ansible-galaxy install -p roles -r roles/requirements.yml
Configure the environment with OpenStack variables:
$ .
Make sure you have a public key uploaded to OpenStack:
$ openstack keypair list
Launch a cluster by calling the jasmin.yml playbook, passing a config file as
Ansible extra variables, providing a keypair to use to connect to the cluster,
and assigning a unique name to the cluster (which will be used to name the
stack). For example:
$ ansible-playbook -i openstack.ini jasmin.yml -e @config/minimal.yml -e cluster_keypair= -e cluster_name=
## Parameters to Provide
These playbooks may be invoked from an AWX context, or direct from the command line.
| Parameter | Notes |
|:----------|:------|
| `cluster_name` | The name of the cluster. This is also the name of the Heat stack, and the stem for all instance names. |
| `cluster_state` | Can be one of present or absent, defaulting to present if not given. Determines whether the cluster should be created/updated (present) or deleted (absent). |
| `cluster_network` | The id or name of the network to which nodes should be attached. |
| `cluster_keypair` | The name of the keypair to inject into nodes. |
| `cluster_upgrade_system_packages` | Flag indicating whether system packages should be upgraded (i.e. the equivalent of yum update -y). Defaults to `false`. |
| `cluster_fixed_ip` | The fixed IP address of the floating IP to use when not using an ephemeral bastion. |
When invoked via AWX, OpenStack configuration parameters are supplied.
From the command line these can be drawn in from the user environment by sourcing
extra vars from `config/auth.yml`, for example:
```
$ ansible-playbook -i inventory nfs-infra.yml \
-e cluster_name=stig-nfs \
-e cluster_keypair=oneswig \
-e cluster_network="caastest-U-internal" \
-e cluster_fixed_ip=192.171.139.120 \
-e @config/auth.yml
```
## Backing up and restoring AWX configuration using tower-cli
To backup:
tower-cli receive --all > awx/backup.json
To restore:
tower-cli send awx/backup.json
[caas]: https://github.com/cedadev/jasmin-cluster-as-a-service/projects/1