Since I have been recently experimenting with OpenBSD 6.6 on Google Cloud Compute, I put together a small bootstrap script to help with new deployments to GCP. It is still in it’s infant stages, but so far it will deploy a couple different scripts on top of the typical basic findelabs OpenBSD bootstrap.
This bootstrap script is stored in the same place as all other bootstraps on findelab’s openbsd-ansible-deploy repo. Now the idea would be to first create an image for GCP based on this article. The before-mentioned bootstrap script would then be set within the metadata of any new VM created.
The basic GCP bootstrap script sets up a very basic OpenBSD install:
# Bootstrap the system ftp -V -o - https://github.com/findelabs/openbsd-ansible-deploy/raw/master/bootstraps/bootstrap_raw.sh | sh # Extra variables for playbook extra_vars="\ role_sysctl_task=gcp_sysctl" # Run playbook cd /root/git/openbsd-ansible-deploy/ && ansible-playbook install.yml --tags=users,system,sysctl,gcp --extra-vars="$extra_vars"
That first script that is loaded, bootstrap_raw.sh, first initializes the server in preparation for running an ansible playbook. These steps are required as OpenBSD does not have the required packages installed by default:
# Setup installurl echo "http://ftp.openbsd.org/pub/OpenBSD/" > /etc/installurl # Install git export PKG_PATH=http://ftp.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -p) && pkg_add -I git ansible # Make git folder mkdir /root/git cd /root/git # Clone playbook if [ -d /root/git/openbsd-ansible-deploy ] then cd /root/git/openbsd-ansible-deploy && git pull else git clone https://github.com/findelabs/openbsd-ansible-deploy.git fi
Going back up to the first script, for the actual ansible-playbook run, the roles selected will configure the bare minimum according to my own preferences. This is simply my method for configuring any new GCP instances as the starting point. There are plenty of other roles I utilize in the playbook.
Has been tested on OpenBSD 6.6