maas-autobuilder/README.md

79 lines
2.7 KiB
Markdown
Raw Normal View History

# MAAS Auto-builder
2018-04-26 14:36:55 -04:00
This is a quick-and-dirty set of shell scripts that will build out and
bootstrap a MAAS environment with all of the bits and pieces you need to get
it running for any cloud, any workload.
2018-04-26 12:25:45 -04:00
* `manage-maas-nodes.sh.......`: Create kvm instances that MAAS will manage
* `manage-hypervisor-nodes.sh.`: Create hypervisors that MAAS will manage
* `bootstrap-maas.sh..........`: Build and bootstrap your MAAS environment
2021-02-01 11:54:48 +00:00
* `functions.sh...............`: Common function that the first 2 scripts use
* `user-data.yaml`............`: cloud-init for hypervisor nodes
2018-04-26 14:35:19 -04:00
2018-04-26 14:36:55 -04:00
There are plenty of options to customize its behavior, as well as drop in to
any step of the process without rebuilding the full MAAS from scratch.
2018-04-26 12:25:45 -04:00
## Requirements
Requires, minimally, `bash`, `jq` and a working Ubuntu environment. This
2018-04-26 14:36:55 -04:00
has **not** been tested on CentOS or Debian, but should work minimally on
those environments, if you choose to make that your host. Patches are
welcome, of course.
2018-04-26 12:25:45 -04:00
2021-02-01 11:54:48 +00:00
## Components - bootstrap-maas.sh
2018-04-19 16:08:54 -04:00
```
2018-04-26 14:36:55 -04:00
-a <cloud_name> Do EVERYTHING (maas, juju cloud, juju bootstrap)
-b Build out and bootstrap a new MAAS
-c <cloud_name> Add a new cloud + credentials
-i Just install the dependencies and exit
-j <name> Bootstrap the Juju controller called <name>
-n Create MAAS kvm nodes (to be imported into chassis)
-r Remove the entire MAAS server + dependencies
-t <cloud_name> Tear down the cloud named <cloud_name>
2018-04-19 16:08:54 -04:00
```
2021-02-01 11:54:48 +00:00
## Components - manage-hypervisor-nodes.sh
```
-a <node> Create and Deploy
-c <node> Creates Hypervisor
-d <node> Deploy Hypervisor
-k <node> Add Hypervisor as Pod
-n <node> Assign Networks
-p <node> Update Partitioning
-w <node> Removes Hypervisor
```
## Components - manage-maas-nodes.sh
```
-c Creates everything
-w Removes everything
-d Releases VMs, Clears Disk
-n Updates all the networks on all VMs
-r Recommission all VMs
-j Only create juju VM
-z Adds the machines to their respective zones
```
## Misc - functions.sh
2021-03-01 17:14:45 +00:00
Many functions that are common between the 2 scripts above
2021-02-01 11:54:48 +00:00
## Misc - user-data.yaml
2021-03-01 17:14:45 +00:00
`cloud-init` file, that helps with deployment of the hypervisors. This helps
to automate the deployment of the hypervisor, which in turns grabs this repo
and deploys all the VMs required.
2021-02-01 11:54:48 +00:00
## Installing and testing MAAS
Just run `./bootstrap-maas.sh` with the appropriate option above.
Minimally, you'll want to use `./bootstrap-maas.sh -b` or `-i` to install
2018-04-26 14:36:55 -04:00
just the components needed.
2018-04-26 12:25:45 -04:00
2018-04-26 14:36:55 -04:00
I've done all the work needed to make this as idempotent as possible. It
2021-02-01 11:54:48 +00:00
will need some minor tweaks to get working with MAAS 2.4.x, because of the
2018-04-26 14:36:55 -04:00
newer PostgreSQL dependencies.