#+TITLE: Cloudstrap #+SUBTITLE: Strapping Boots to Clouds #+LATEX: \pagebreak * Overview =cloudstrap= straps your boots to the cloud. Think of it as sort of a meta-bootstrap tool. It handles pre-bootstrapping, primarily. Once complete, you should have an environment suitable for launching your bootstrapper. * Why does this exist? To simplify deployment by replacing manual process with glorious automation. * Installation #+BEGIN_SRC shell gem install --pre cloudstrap #+END_SRC * Usage Simply run the automated bootstrap tool. You can configure it via ENV or =config.yaml= #+BEGIN_SRC shell env BOOTSTRAP_WITHOUT_HUMAN_OVERSIGHT=true cloudstrap #+END_SRC The output describes the results, and all settings used in the process. #+BEGIN_EXAMPLE # Cloudstrap v0.28.0.pre # General Configuration # These settings can be configured via ENV or config.yaml BOOTSTRAP_REGION=us-west-2 BOOTSTRAP_CACHE_PATH=/Users/colstrom/cloudstrap/.cache BOOTSTRAP_VPC_CIDR_BLOCK=10.0.0.0/16 BOOTSTRAP_PUBLIC_CIDR_BLOCK=10.0.0.0/24 BOOTSTRAP_PRIVATE_CIDR_BLOCK=10.0.1.0/24 BOOTSTRAP_AMI_OWNER=099720109477 BOOTSTRAP_UBUNTU_RELEASE=14.04 BOOTSTRAP_INSTANCE_TYPE=t2.micro BOOTSTRAP_SSH_DIR=/Users/colstrom/cloudstrap/.ssh BOOTSTRAP_SSH_USERNAME=ubuntu BOOTSTRAP_HDP_DIR=/Users/colstrom/cloudstrap # Cached Configuration # These settings can be overridden via ENV only BOOTSTRAP_USERNAME=colstrom BOOTSTRAP_UUID=97cb1464-cf44-479e-be47-9a212131ad4c BOOTSTRAP_TAG=lkg@colstrom/97cb1464-cf44-479e-be47-9a212131ad4c BOOTSTRAP_AMI=ami-70b67d10 BOOTSTRAP_VPC_ID=vpc-0e93a16a BOOTSTRAP_INTERNET_GATEWAY_ID=igw-942af8f0 BOOTSTRAP_JUMPBOX_SECURITY_GROUP=sg-43f9183a BOOTSTRAP_PRIVATE_SUBNET_ID=subnet-b7047dc1 BOOTSTRAP_PUBLIC_SUBNET_ID=subnet-9c1c65ea BOOTSTRAP_ROUTE_TABLE_ID=rtb-9d28dcfa BOOTSTRAP_AVAILABILITY_ZONE=us-west-2b BOOTSTRAP_JUMPBOX_ID=i-051c248563a2c3f54 BOOTSTRAP_JUMPBOX_IP=52.89.237.123 BOOTSTRAP_WITHOUT_HUMAN_OVERSIGHT=true # Additional Information # These do not need configuration, and are presented as a debugging checklist # Public IPs Enabled in Public Subnet? true # Gateway Attached to VPC? true # Route to Internet via Gateway? true # Route to NAT Gateway from Private Subnet? true # SSH Allowed to Jumpbox? true # SSH Key uploaded to AWS? 1a:c4:ec:25:94:90:ed:ee:c2:66:2e:3c:9c:c8:7a:12 # HDP bootstrap.properties configured? true # Jumpbox Running? true # No version specified for HDP Bootstrap, falling back to default version INFO [0942f874] Running /usr/bin/env rm -f /home/ubuntu/.ssh/id_rsa as ubuntu@52.89.237.123 INFO [0942f874] Finished in 11.547 seconds with exit status 0 (successful). INFO Uploading /Users/colstrom/cloudstrap/.ssh/lkg@colstrom/97cb1464-cf44-479e-be47-9a212131ad4c 100.0% INFO [bec7b898] Running /usr/bin/env chmod -w /home/ubuntu/.ssh/id_rsa as ubuntu@52.89.237.123 INFO [bec7b898] Finished in 0.048 seconds with exit status 0 (successful). INFO Uploading /Users/colstrom/bootstrap.properties 100.0% INFO [e091db46] Running /usr/bin/env apt install --assume-yes genisoimage aria2 as ubuntu@54.89.237.123 INFO [e091db46] Finished in 8.157 seconds with exit status 0 (successful). INFO [1fa8cae1] Running /usr/bin/env aria2c --continue=true --dir=/opt --out=bootstrap.deb https://s3-us-west-2.amazonaws.com/hcp-concourse/hcp-bootstrap_1.2.30%2Bmaster.77bb464.20160819000448_amd64.deb as ubuntu@52.89.237.123 INFO [1fa8cae1] Finished in 3.395 seconds with exit status 0 (successful). INFO [577d4fdc] Running /usr/bin/env dpkg --install /opt/bootstrap.deb as ubuntu@52.89.237.123 INFO [577d4fdc] Finished in 3.055 seconds with exit status 0 (successful). Contratulations! Your Jumpbox is ready. This instance has been configured with everything you need to deploy your very own Stackato. The SSH key used by this process has been uploaded to your Jumpbox, along with a bootstrap.properties file that has been configured to match the settings used here. Human oversight has been disabled. Now would be a good time for tea and swordplay (https://xkcd.com/303/). What happens next is non-interactive and will take approximately 30 minutes. INFO [03a68da8] Running /usr/bin/env bootstrap install bootstrap.properties as ubuntu@52.89.237.123 INFO [03a68da8] Finished in 1457.406 seconds with exit status 0 (successful). #+END_EXAMPLE * License =cloudstrap= is available under the [[https://tldrlegal.com/license/mit-license][MIT License]]. See ~LICENSE.txt~ for the full text. The software it deploys has its own license. * Contributors - [[https://colstrom.github.io/][Chris Olstrom]] | [[mailto:chris@olstrom.com][e-mail]] | [[https://twitter.com/ChrisOlstrom][Twitter]]