https://github.com/ignalina/automata
Scripts to inject & run scripts on hosts that can be existing or created on the fly.
https://github.com/ignalina/automata
Last synced: about 1 year ago
JSON representation
Scripts to inject & run scripts on hosts that can be existing or created on the fly.
- Host: GitHub
- URL: https://github.com/ignalina/automata
- Owner: Ignalina
- License: mit
- Created: 2024-02-04T13:12:53.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-29T21:17:16.000Z (almost 2 years ago)
- Last Synced: 2024-10-13T14:33:10.862Z (over 1 year ago)
- Language: Shell
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Automata
Create and maintain airgaped clusters for distributed software
Automata does this by Generate OS iso's and fire them up on hosts (kvm or redfish)
# a quick test run on your local linux.
```bash
airgap_media.sh fedora_41
iso_create.sh fedora_41 4 spark x14.se
kvm_initiate.sh fedora_41 4 spark x14.se
kvm_cluster.sh fedora_41 4 spark x14.se
```
you will se 4 small virtual machines fired up !
# An explanation of the steps above..
0) airgap your target os media on an internet enabled server.
**syntax** airgap_img.sh _osversion_
For example , fedora_41 os
```bash
airgap_media.sh fedora_41
```
For a quick test continue with step nr 2 below on same server. But for production you need transfer airgaped media files to non internet enabled machines.
A future update needs to run the below command and again transfer the packages to non internet enabled machine/s
```bash
airgap_update.sh fedora_41
```
1) Create your media ,One iso for each node in cluster will be created
**syntax** iso_create.sh _osversion_ _nodes_ _nodename_ _domain_
For example , to create 4 isos with hostnames {spark1.x14.se, spark2.x14.se, spark3.x14.se}
```bash
iso_create.sh fedora_41 4 spark x14.se
```
2) Initate your hosts (DISCLAIMER WARNING WILL DESTROY / FORMAT / DELETE your hosts)
**syntax** [kvm/redfish]_initate.sh _osversion_ _nodes_ _nodename_ _domain_
using local kvm
```bash
kvm_initiate.sh fedora_41 4 spark x14.se
```
or redfish where you must set ip1...ip4 to your hardwares BMC.
```bash
redfish_initiate.sh fedora_41 4 spark x14.se {ip1,ip2,ip3,ip4}
```
3) Fire up your cluster by installing iso's on hosts
**syntax** kvm_cluster.sh _osversion_ _nodes_ _nodename_ _domain_
**syntax** redfish_cluster.sh _osversion_ _nodes_ _nodename_ _domain_ {ip1,ip2,..}_
For example to fire up fedora_41 cluster localy on kvm'ms
```bash
kvm_cluster.sh fedora_41 4 spark x14.se
```
a small cluster json vill be created with IP'setc..
4) Use your cluster
Its up and running and you have an cluster.json with ip's etc
# CREDITS!
To myself Rickard Ernst Björn Lundin on behalf of Swedish X14 AB and Danish Ignalina APS
KVM parts are partly copied and inspired from from Earl C. Ruby III https://github.com/earlruby/create-vm
Wikipedia image of Automata