builder setup guide

This commit is contained in:
mbecker20
2024-07-04 19:03:43 -07:00
parent 35901ef7ea
commit f913be7a0b

View File

@@ -4,8 +4,46 @@ A builder is a machine running monitor periphery and docker. Any server connecte
Building on a machine running production software is usually not a great idea, as this process can use a lot of system resources. It is better to start up a temporary cloud machine dedicated for the build, then shut it down when the build is finished. Right now monitor supports AWS ec2 for this task.
### AWS builder
## AWS builder
Builders are now monitor resources, and are managed via the core API / can be updated using the UI.
To use this feature, you need an AWS Ec2 AMI with docker and monitor periphery configured to run on system start.
Once you create your builder and add the necessary configuration, it will be available to attach to builds.
Once you create your builder and add the necessary configuration, it will be available to attach to builds.
### Setup the instance
Create an EC2 instance, and install Docker and Periphery on it.
The following script is an example of installing Docker and Periphery onto a Ubuntu/Debian instance:
```sh
#!/bin/bash
apt update
apt upgrade -y
curl -fsSL https://get.docker.com | sh
systemctl enable docker.service
systemctl enable containerd.service
curl -sSL https://raw.githubusercontent.com/mbecker20/monitor/main/scripts/setup-periphery.py | python3
systemctl enable periphery.service
```
:::note
AWS provides a "user data" feature, which will run a provided script as root. The above can be used with AWS user data
to provide a hands free setup.
:::
### Make an AMI from the instance
Once the instance is up and running, ssh in and confirm Periphery is running using:
```sh
sudo systemctl status periphery.service
```
If it is not, the install hasn't finished and you should wait a bit. It may take 5 minutes or more (all in updating / installing Docker, Periphery is just a 12 MB binary to download).
Once Periphery is running, you can navigate to the instance in the AWS UI and choose `Actions` -> `Image and templates` -> `Create image`. Just name the image and hit create.
The AMI will provide a unique id starting with `ami-`, use this with the builder configuration.
### Configure security groups / firewall
The builders will need inbound access on port 8120 from monitor core, be sure to add a security group with this rule to the Builder configuration.