mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HCL
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HCL
		
	
	
resource "aws_lightsail_static_ip" "epicyon_static_ip" {
 | 
						|
  name = "epicyon"
 | 
						|
}
 | 
						|
resource "aws_lightsail_static_ip_attachment" "for_epicyon" {
 | 
						|
  static_ip_name = aws_lightsail_static_ip.epicyon_static_ip.id
 | 
						|
  instance_name  = aws_lightsail_instance.epicyon.id
 | 
						|
}
 | 
						|
 | 
						|
resource "aws_lightsail_key_pair" "ssh_key_pair" {
 | 
						|
  name       = "epicyon_key"
 | 
						|
  public_key = var.publickey
 | 
						|
}
 | 
						|
 | 
						|
resource "aws_lightsail_instance" "epicyon" {
 | 
						|
  name              = var.instance_name
 | 
						|
  availability_zone = "us-east-1a"
 | 
						|
  blueprint_id      = "ubuntu_20_04"
 | 
						|
  bundle_id         = "nano_2_0"
 | 
						|
  key_pair_name     = var.key
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
resource "aws_lightsail_domain" "epicyon_domain" {
 | 
						|
  domain_name = var.domain
 | 
						|
}
 | 
						|
 | 
						|
resource "aws_lightsail_domain_entry" "epicyon" {
 | 
						|
  depends_on = [aws_lightsail_static_ip.epicyon_static_ip]
 | 
						|
  domain_name = aws_lightsail_domain.epicyon_domain.domain_name
 | 
						|
  name        = var.epicyon_sub_domain
 | 
						|
  type        = "A"
 | 
						|
  target      = aws_lightsail_static_ip.epicyon_static_ip.ip_address
 | 
						|
}
 | 
						|
 | 
						|
resource "null_resource" "null_resource_epicyon" {
 | 
						|
  depends_on = [aws_lightsail_domain_entry.epicyon]
 | 
						|
  triggers = {
 | 
						|
    id = timestamp()
 | 
						|
  }
 | 
						|
   connection {
 | 
						|
    agent       = false
 | 
						|
    type        = "ssh"
 | 
						|
    host        = aws_lightsail_static_ip.epicyon_static_ip.ip_address
 | 
						|
    private_key = file(var.private_key)
 | 
						|
    user        = aws_lightsail_instance.epicyon.username
 | 
						|
  }
 | 
						|
  provisioner "file" {
 | 
						|
    source      = "./templates/startup.sh"
 | 
						|
    destination = "~/startup.sh"
 | 
						|
  }
 | 
						|
  provisioner "remote-exec" {
 | 
						|
    inline = [
 | 
						|
      "chmod +x ~/startup.sh",
 | 
						|
      "export domain=${var.epicyon_sub_domain}",
 | 
						|
      "export email=${var.email}",
 | 
						|
      "bash ~/startup.sh"
 | 
						|
    ]
 | 
						|
  }
 | 
						|
}
 | 
						|
 |