AWS Cloud Provider ===================== Initial zbuilder setup ---------------------- Make sure you have installed the following on your system: * aws cli Create aws resources needed (optional) -------------------------------------- Find out our default VPC id:: VPCID=`aws ec2 describe-vpcs | jq -r '.Vpcs[] | select(.IsDefault == true) | .VpcId'` Make sure there is public ssh access to it:: aws ec2 create-security-group --group-name SSHAccess --description "Security group for SSH access" --vpc-id $VPCID SGID=`aws ec2 describe-security-groups | jq -r '.SecurityGroups[] | select(.GroupName == "SSHAccess") | .GroupId'` aws ec2 authorize-security-group-ingress --group-id $SGID --protocol tcp --port 22 --cidr 0.0.0.0/0 Upload our ssh key into AWS:: aws ec2 import-key-pair --key-name "sysadmin@zbuilder.com" --public-key-material fileb://~/.ssh/id_rsa.pub Use these ids (security groups, subnet) for configuring *group_vars/all*:: aws ec2 describe-subnets | jq -r ".Subnets[0] | select(.VpcId == \"$VPCID\") | .SubnetId" aws ec2 describe-security-groups | jq -r '.SecurityGroups[] | select(.GroupName == "default" or .GroupName == "SSHAccess") | .GroupId' Main configuration ------------------ Configure the source of your templates:: zbuilder config main templates repo=https://github.com/hasiotis/zbuilder-templates.git zbuilder config main templates path=~/.config/zbuilder/templates zbuilder config update --yes Provider configuration ---------------------- Define *amazon* as a provider of type aws:: zbuilder config provider amazon type=aws Let zbuilder know that aws provider will also handle the *aws.hasiotis.dev* zone:: zbuilder config provider amazon.dns zones=aws.hasiotis.dev zbuilder config view For this to work you need to have your dns zone managed by aws route53 Create your environment ----------------------- Now create and environment from a vagrant template:: mkdir ZBUILDER_AWS_DEMO cd ZBUILDER_AWS_DEMO zbuilder init --template aws (update security groups and subnet) zbuilder build Cleanup the environment ----------------------- To remove all VMs run:: zbuilder destroy