Running Scripts on Servers
Sometimes you need to run a bash script on a server as soon as it's created. We use provisioners for this.
hcl resource "aws_instance" "web" {
...
provisioner "local-exec" { command = "echo ${self.private_ip} >> private_ips.txt" } }
Warning: Provisioners are a 'last resort'. It's better to use images (Packer) or config management (Ansible) because provisioners aren't recorded in the state file perfectly.