feat: Added automatic script copying functionality
This commit is contained in:
@@ -58,3 +58,47 @@ resource "hcloud_server" "this" {
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
vpn_static_files = sort(fileset("${path.root}/../services/vpn", "**"))
|
||||
|
||||
vpn_static_files_hash = sha1(join("", [
|
||||
for f in local.vpn_static_files : filesha1("${path.root}/../services/vpn/${f}")
|
||||
]))
|
||||
}
|
||||
|
||||
# Copies services/vpn to the server on every apply that changes it (a
|
||||
# hand-edited compose file, ...) or recreates the server - not just once at
|
||||
# first creation. Split from hcloud_server.this so it's triggered by content
|
||||
# changes independently of the bootstrap provisioners above.
|
||||
resource "null_resource" "deploy_services" {
|
||||
triggers = {
|
||||
server_id = hcloud_server.this.id
|
||||
static_files = local.vpn_static_files_hash
|
||||
}
|
||||
|
||||
connection {
|
||||
type = "ssh"
|
||||
host = hcloud_server.this.ipv4_address
|
||||
user = "root"
|
||||
private_key = file(var.ssh_private_key_path)
|
||||
}
|
||||
|
||||
provisioner "remote-exec" {
|
||||
inline = ["mkdir -p /home/${var.deploy_user}/services"]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
source = "${path.root}/../services/vpn"
|
||||
destination = "/home/${var.deploy_user}/services"
|
||||
}
|
||||
|
||||
provisioner "remote-exec" {
|
||||
inline = [
|
||||
"chown -R ${var.deploy_user}:${var.deploy_user} /home/${var.deploy_user}/services",
|
||||
"chmod +x /home/${var.deploy_user}/services/vpn/*.sh",
|
||||
]
|
||||
}
|
||||
|
||||
depends_on = [hcloud_server.this]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user