mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-11-09 10:40:34 -05:00
1.6 KiB
1.6 KiB
title | date | draft | tags | medium_enabled | |
---|---|---|---|---|---|
Shared Packer & Terraform Config | 2020-05-08T22:59:30-04:00 | false |
|
true |
You might have noticed from my last two posts on Packer and Terraform that the configuration files are highly similar. In fact, we can trick them into sharing a configuration file!
Shared Configuration
First let's create a file we'll call config
that contains all our assignments. Here is an example configuration:
base_system_image = "ubuntu-20-04-x64"
region = "nyc3"
size = "512mb"
domain = "example.com"
subdomain = "temp"
# Secrets
do_token = "DO-TOKEN-HERE"
key_name = "KEY-NAME-ON-DO"
Then we'll create a file named variables.hcl
that contains the type definitions
variable "do_token" {
type = string
}
variable "base_system_image" {
type = string
}
variable "domain" {
type = string
}
variable "key_name" {
type = string
}
variable "subdomain" {
type = string
}
variable "region" {
type = string
}
variable "size" {
type = string
}
Packer
Now to trick Packer into reading the configuration files we need to:
- map
variables.auto.pkrvars.hcl
toconfig
- map
variables.pkr.hcl
tovariables.hcl
We can do this with symbolic links
ln -s config variables.auto.pkrvars.hcl
ln -s variables.hcl variables.pkr.hcl
Terraform
To trick Terraform into reading the configuration files we need to:
- map
terraform.tfvars
toconfig
- map
variables.tf
tovariables.hcl
As before, we can do this with symbolic links
ln -s config terraform.tfvars
ln -s variables.hcl variables.tf