Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nextrevision/terraform-rancher-ha-example
Terraform files for deploying a Rancher HA cluster in AWS
https://github.com/nextrevision/terraform-rancher-ha-example
docker rancher terraform
Last synced: about 1 month ago
JSON representation
Terraform files for deploying a Rancher HA cluster in AWS
- Host: GitHub
- URL: https://github.com/nextrevision/terraform-rancher-ha-example
- Owner: nextrevision
- Created: 2016-05-04T13:29:36.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-08-10T13:40:32.000Z (over 7 years ago)
- Last Synced: 2024-11-01T15:44:02.558Z (about 1 month ago)
- Topics: docker, rancher, terraform
- Language: HCL
- Size: 17.6 KB
- Stars: 61
- Watchers: 9
- Forks: 37
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-rancher - Terraform Rancher HA - Terraform files for deploying a Rancher HA cluster in AWS (Rancher 1.0 / Community projects 1.0)
- awesome - terraform-rancher-ha-example - Terraform files for deploying a Rancher HA cluster in AWS (HCL)
README
# terraform-rancher-ha-example
Terraform files for deploying a Rancher HA cluster in AWS> Update: since v1.2.0 simplified the HA deployment process, master reflects the latest way to deploy Rancher HA. If you are looking for the previous code, it is tagged under [v1.0.0](https://github.com/nextrevision/terraform-rancher-ha-example/tree/v1.0.0).
These files are meant as a companion to the following blog post:
[https://thisendout.com/2016/12/10/update-deploying-rancher-in-production-aws-terraform-rancheros/](https://thisendout.com/2016/12/10/update-deploying-rancher-in-production-aws-terraform-rancheros/)
## Usage
Clone this repo:
```
git clone https://github.com/nextrevision/terraform-rancher-ha-example
cd terraform-rancher-ha-example
```Edit the `terraform.tfvars` file:
```
# AWS key for the instances
key_name = "rancher-example"# RDS database password
db_pass = "rancherdbpass"# To enable SSL termination on the ELBs, uncomment the lines below.
#enable_https = true
#cert_body = "certs/cert1.pem" # Signed Certificate
#cert_private_key = "certs/privkey1.pem" # Certificate Private Key
#cert_chain = "certs/chain1.pem" # CA chain
```To create the cluster:
```
terraform apply
```To destroy:
```
terraform destroy
```## Variables
### AWS Infrastructure
* **region**: AWS region (default: `us-east-1`)
* **count**: number of HA servers to deploy (default: `3`)
* **name_prefix**: prefix for all AWS resource names (default: `rancher-ha`)
* **ami**: instance AMI ID (default: `ami-dfdff3c8`; RancherOS in us-east-1)
* **key_name**: SSH key name in your AWS account for AWS instances (required)
* **instance_type**: AWS instance type (default: `t2.large` for RAM requirement)
* **root_volume_size**: size in GB of the instance root volume (default: `16`)
* **vpc_cidr**: subnet in CIDR format to assign to the VPC (default: `192.168.199.0/24`)
* **subnet_cidrs**: list of subnet ranges (3 required) (default: `["192.168.199.0/26", "192.168.199.64/26", "192.168.199.128/26"`)
* **availability_zones**: AZs for placing instances and subnets (may change based on your account's availability) (default: `["us-east-1a", "us-east-1b", "us-east-1d"]`)
* **internal_elb**: Make ELB internal to VPC vs externally accessible (default: `false`)> Note: if you use an AMI other than RancherOS, the automatic launching of the Rancher server container will not work. You will need to update the user-data template according to the needs of your AMI.
### Database
* **db_name**: name of the RDS DB (default: `rancher`)
* **db_user**: username used to connect to the RDS database (default: `rancher`)
* **db_pass**: password used to connect to the RDS database (required)### SSL
* **enable_https**: enable HTTPS termination on the loadbalancer (default: `false`)
* **cert_body**: required if `enable_https` is set to `true`
* **cert_private_key**: required if `enable_https` is set to `true`
* **cert_chain**: required if `enable_https` is set to `true`### Rancher
* **rancher_version**: Rancher version to deploy (default: `stable`)