From 0c87d694af2f73300df5a6cb1e725a3cd5d33fc4 Mon Sep 17 00:00:00 2001 From: Curtis Wilson Date: Wed, 23 Feb 2022 14:11:20 -0500 Subject: [PATCH] Document dev environment. --- README.md | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e495e0a..f9161d5 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,53 @@ -A Terraform script to create k8s nodes. This script has modules for creating the -nodes on a KVM/QEMU (libvirt) hypervisor or creating the nodes via AWS. +A terraform script that will setup VMs via AWS or KVM/QEMU (libvirt). The modules allow you create N VMs of a specific type. So you could create 1 master node and 3 worker nodes or you could create 3 Ubuntu VMs and 5 CentOS VMs, or whatever fits your needs. +This script creates the VMs and then uses Cloud-init for initial configuration +of the VMs. + +libvirt vs. AWS +---------------------------------------- + +This script allows VMs to be created libvirt or AWS. You can choose either one, +however, running both at the same time has not been tested. Therefore, when +using one, you should comment out all code pertaining to the other provider. + Cloud-Init ---------------------------------------- Both the libvirt and aws modules use cloud-init for initial configuration of the -VMs. +VMs. Cloud-init is used to create the admin user and add the mss-admin keys. +Cloud-init is also used to install some initial packages. The goal is to get +these VMs setup enough so that they can be configured via Ansible. + +Environment Setup +---------------------------------------- + +1. From within the nodes-terraform directory run `terraform init`. You will a + see bunch if output as terraform grabs the dependencies it needs. + +2. Copy the shared `terraform.tfvars` from S3. + ```shell + aws s3 cp s3://mss-terraform-state/global/s3/terraform.tfvars . + ``` + For instructions on getting AWS CLI to work correctly see `aws-api-setup.md` + in the `doc-ops` repo. + + Take care to copy your `terraform.tfvars` back to the S3 bucket whenever you + make a change to it. + +3. Verify that you branch and variables match whats deployed by running + `terraform plan`. If everything is in sync you should see `No changes. Your + infrastructure matches the configuration.` _IF_ you do not see this message + make sure to sync with the other admins before continuing. + Dependencies ---------------------------------------- +_UNFINISHED_ TODO REM add libvirt provider libvirt provider depends on mkisofs