PromucFlow_constructor/deploy/packer/template.json.pkr.hcl

88 lines
2.2 KiB
HCL
Raw Permalink Normal View History

# Configuration - AWS base image
variable "base_ami" {
type = string
default = "ami-0851b76e8b1bce90b"
}
# Configuration - AWS provisioning instance type
variable "instance_type" {
type = string
default = "t2.micro"
}
# Configuration - AWS subnet
variable "subnet_id" {
type = string
default = ""
}
# Configuration - AWS VPC
variable "vpc_id" {
type = string
default = ""
}
# Configuration - DO token
variable "token" {
type = string
default = "${env("DIGITALOCEAN_TOKEN")}"
}
# "timestamp" template function replacement
locals { timestamp = regex_replace(timestamp(), "[- TZ:]", "") }
# Variable - AMI naming
locals {
ami_name = "appsmith-ami-${local.timestamp}"
image_name = "appsmith-marketplace-snapshot-${local.timestamp}"
}
# Builder - Provision AWS instance
source "amazon-ebs" "autogenerated_1" {
ami_name = "${local.ami_name}"
instance_type = "${var.instance_type}"
launch_block_device_mappings {
delete_on_termination = true
device_name = "/dev/sda1"
volume_size = 15
volume_type = "gp2"
}
region = "ap-south-1"
source_ami = "${var.base_ami}"
ssh_username = "appsmith"
subnet_id = "${var.subnet_id}"
vpc_id = "${var.vpc_id}"
skip_create_ami = false
user_data_file = "./defaults.cfg"
}
# Builder - Provision DO droplet
source "digitalocean" "autogenerated_2" {
api_token = "${var.token}"
image = "ubuntu-20-04-x64"
region = "blr1"
size = "s-1vcpu-1gb"
snapshot_name = "${local.image_name}"
ssh_username = "appsmith"
user_data_file = "./defaults.cfg"
}
# Provisioning - Setup Appsmith
build {
sources = ["source.amazon-ebs.autogenerated_1", "source.digitalocean.autogenerated_2"]
provisioner "ansible" {
extra_arguments = ["--tags", "packer"]
user = "appsmith"
playbook_file = "../ansible/appsmith_playbook/appsmith-playbook.yml"
}
provisioner "ansible" {
only = ["amazon-ebs.autogenerated_1"]
user = "appsmith"
extra_arguments = ["--tags", "packer-aws", "--skip-tags", "always"]
playbook_file = "../ansible/appsmith_playbook/appsmith-playbook.yml"
}
}