An open API service indexing awesome lists of open source software.

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.

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