{"id":31904217,"url":"https://github.com/cloudfoundry-community/terraform-aws-bosh","last_synced_at":"2025-10-13T13:48:09.794Z","repository":{"id":25399282,"uuid":"28828050","full_name":"cloudfoundry-community/terraform-aws-bosh","owner":"cloudfoundry-community","description":"Create a one-click AWS VPC, with bastian, NAT and Micro BOSH","archived":false,"fork":false,"pushed_at":"2016-11-29T20:41:48.000Z","size":28,"stargazers_count":26,"open_issues_count":1,"forks_count":13,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-04-14T22:47:43.842Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudfoundry-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-05T19:34:04.000Z","updated_at":"2024-02-09T14:24:15.000Z","dependencies_parsed_at":"2022-08-23T20:00:23.178Z","dependency_job_id":null,"html_url":"https://github.com/cloudfoundry-community/terraform-aws-bosh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cloudfoundry-community/terraform-aws-bosh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry-community%2Fterraform-aws-bosh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry-community%2Fterraform-aws-bosh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry-community%2Fterraform-aws-bosh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry-community%2Fterraform-aws-bosh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudfoundry-community","download_url":"https://codeload.github.com/cloudfoundry-community/terraform-aws-bosh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry-community%2Fterraform-aws-bosh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015343,"owners_count":26085686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-13T13:48:00.159Z","updated_at":"2025-10-13T13:48:09.787Z","avatar_url":"https://github.com/cloudfoundry-community.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"terraform-aws-bosh\n==================\n\nThis project will create an AWS VPC with subnets/route tables, a bastion VM (aka jumpbox/inception server), NAT (for outbound traffic), and a Micro BOSH.\n\nArchitecture\n------------\n\nThis terraform project will deploy the following networking and instances (pretty diagram from https://ide.visualops.io):\n\n![](http://cl.ly/image/1u1F462W2W0p/terraform-aws-bosh_architecture.png)\n\nWe rely on one other terraform repository:\n\n-\t[terraform-aws-vpc](https://github.com/cloudfoundry-community/terraform-aws-vpc) repo creates the base VPC infrastructure, including a bastion subnet, the`microbosh` subnet, a NAT server, various route tables, and the VPC itself\n\nThis repository then creates a bastion VM and uses it to bootstrap a Micro BOSH (using the [bosh-bootstrap](https://github.com/cloudfoundry-community/bosh-bootstrap) project) into one of the private subnets.\n\nTo access the BOSH, first SSH into the bastion VM.\n\nDeploy\n------\n\n### Prerequisites\n\nThe one step that isn't automated is the creation of SSH keys. We are waiting for that feature to be [added to terraform](https://github.com/hashicorp/terraform/issues/28). An AWS SSH Key need to be created in desired region prior to running the following commands. Note the name of the key and the path to the pem/private key file for use further down.\n\nYou **must** being using at least terraform version 0.3.6. Follow the `make dev` [build instructions](https://github.com/hashicorp/terraform/#developing-terraform) to ensure plugins are built too.\n\n```\n$ terraform -v\nTerraform v0.3.6.dev\n```\n\nOptionally for using the `Unattended Install` instruction, install git.\n\n### Setup\n\n```bash\ngit clone https://github.com/cloudfoundry-community/terraform-aws-bosh\ncd terraform-aws-bosh\ncp terraform.tfvars.example terraform.tfvars\n```\n\nNext, edit `terraform.tfvars` using your text editor and fill out the variables with your own values (AWS credentials, AWS region, etc).\n\n### Deploy\n\n```bash\nmake plan\nmake apply\n```\n\nThe final output might look like:\n\n```\nOutputs:\n\naws_internet_gateway_id              = igw-6439f501\naws_route_table_private_id           = rtb-51e94a34\naws_route_table_public_id            = rtb-49e94a2c\naws_subnet_bastion                   = subnet-1419a771\naws_subnet_bastion_availability_zone = us-west-2a\naws_vpc_id                           = vpc-b72581d2\nbastion_ip                           = 54.1.2.3\n```\n\nAfter Initial Install\n---------------------\n\nAt the end of the output of the terraform run, there will be a section called `Outputs` that will have at least `bastion_ip` and an IP address. If not, or if you cleared the terminal without noting it, you can log into the AWS console and look for an instance called `bastion`, with the `bastion` security group. Use the public IP associated with that instance, and ssh in as the ubuntu user, using the ssh key listed as `aws_key_path` in your configuration (if you used the Unattended Install).\n\n```\nssh -i ~/.ssh/example.pem ubuntu@54.1.2.3\n```\n\nYou can also access the \"Outputs\" from above using `terraform output`:\n\n```\nssh ubuntu@$(terraform output bastion_ip)\n```\n\nOnce inside you can access your BOSH.\n\n```\n$ bosh target\nCurrent target is https://10.10.1.4:25555 (vpc-b72581d2-keypair)\n\n$ bosh status\nConfig\n  /home/ubuntu/.bosh_config\n\nDirector\n  Name       vpc-b72581d2-keypair\n  URL        https://10.10.1.4:25555\n  ...\n```\n\n### Cleanup / Tear down\n\nTerraform does not yet quite cleanup after itself.\n\nFirst, using the AWS Console you must manually delete all Instances (VMs).\n\nSecond, run `make destroy`.\n\nFinally, run `make clean`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry-community%2Fterraform-aws-bosh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudfoundry-community%2Fterraform-aws-bosh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry-community%2Fterraform-aws-bosh/lists"}