Weaveworks provisioning
Introduction
This project allows you to get hold of some machine either locally or on one of the below cloud providers:
- Amazon Web Services
- Digital Ocean
- Google Cloud Platform
You can then use these machines as is or run various Ansible playbooks from ../config_management to set up Weave Net, Kubernetes, etc.
Set up
-
You will need Vagrant installed on your machine and added to your
PATHin order to be able to provision local (virtual) machines automatically.- On macOS:
brew install vagrant - On Linux (via Aptitude):
sudo apt install vagrant - For other platforms or more details, see here
- On macOS:
-
You will need Terraform installed on your machine and added to your
PATHin order to be able to provision cloud-hosted machines automatically.-
On macOS:
brew install terraform -
On Linux (via Aptitude):
sudo apt install terraform -
If you need a specific version:
curl -fsS https://releases.hashicorp.com/terraform/x.y.z/terraform_x.y.z_linux_amd64.zip | gunzip > terraform && chmod +x terraform && sudo mv terraform /usr/bin -
For other platforms or more details, see here
-
-
Depending on the cloud provider, you may have to create an account, manually onboard, create and register SSH keys, etc. Please refer to the
README.mdin each sub-folder for more details.
Usage in scripts
Source setup.sh, set the SECRET_KEY environment variable, and depending on the cloud provider you want to use, call either:
gcp_on/gcp_offdo_on/do_offaws_on/aws_off
Usage in shell
Source setup.sh, set the SECRET_KEY environment variable, and depending on the cloud provider you want to use, call either:
gcp_on/gcp_offdo_on/do_offaws_on/aws_off
Indeed, the functions defined in setup.sh are also exported as aliases, so you can call them from your shell directly.
Other aliases are also defined, in order to make your life easier:
tf_ssh: to ease SSH-ing into the virtual machines, reading the username and IP address to use from Terraform, as well as setting default SSH options.tf_ansi: to ease applying an Ansible playbook to a set of virtual machines, dynamically creating the inventory, as well as setting default SSH options.