# Terraform remote-exec provisioner not working

**URL:** <https://discuss.hashicorp.com/t/terraform-remote-exec-provisioner-not-working/7244>\
**Category:** Terraform\
**Created:** [March 31, 2020, 5:38pm UTC](https://discuss.hashicorp.com/t/terraform-remote-exec-provisioner-not-working/7244 "2020-03-31T17:38:03Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![kaushalshriyan](https://sea2.discourse-cdn.com/hashicorp/user_avatar/discuss.hashicorp.com/kaushalshriyan/32/5682_2.png) [@kaushalshriyan](https://discuss.hashicorp.com/u/kaushalshriyan)\
**Post date:** [March 31, 2020, 5:38pm UTC](https://discuss.hashicorp.com/t/terraform-remote-exec-provisioner-not-working/7244/1 "2020-03-31T17:38:03Z")

</div>

Hi,

I am referring to [https://www.terraform.io/docs/provisioners/remote-exec.html#script-arguments](https://www.terraform.io/docs/provisioners/remote-exec.html#script-arguments) to install the Nginx web server on the remote server.

```
cat main.tf
variable "region" {
  default = "us-west1-a" // We're going to need it in several places in this config
}
provider "google" {
  credentials = "whcdrupalproject.json"
  project = "whcdrupalproject"
  region = "us-west1-a"
}
resource "google_compute_instance" "whcdrupal8" {
  count = 1 // Adjust as desired
  name = "whcdrupal8" // yields "test1", "test2", etc. It's also the machine's name and hostname
  machine_type = "f1-micro" // smallest (CPU & RAM) available instance
  zone = "us-west1-a" // yields "europe-west1-d" as setup previously. Places your VM in Europe
boot_disk {
    initialize_params {
      image = "centos-7"
    }
  }
  network_interface {
    network = "default"
    access_config {
      // Ephemeral IP - leaving this block empty will generate a new external IP and assign it to the machine
    }
  }
provisioner "file" {
    source = "script.sh"
    destination = "/tmp/script.sh"
  }
  provisioner "remote-exec" {
    inline = [
      "chmod +x /tmp/script.sh",
      "/tmp/script.sh args",
    ]
}
}

```

I have the below script.sh file locally. I want it to be pushed to the remote server and execute it there.

```
#cat script.sh
#!/bin/bash
yum -y install nginx 

```

Port 22 is open and please find the below details.

```
$gcloud compute ssh tmobiledrupal8
No zone specified. Using zone [us-west1-a] for instance: [tmobiledrupal8].
Warning: Permanently added 'compute.7260763458670404915' (ECDSA) to the list of known hosts.
(reverse-i-search)`': ^C
[kaushalshriyan@tmobiledrupal8 ~]$ curl ifconfig.co
35.247.72.150
[kaushalshriyan@tmobiledrupal8 ~]$logout
Connection to 35.247.72.150 closed.
Kaushals-MacBook-Pro:~ kaushalshriyan$ nc -v 35.247.72.150 22
Connection to 35.247.72.150 port 22 [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_7.4

$terraform apply "ghcdrupalproject.tfplan"
google_compute_instance.tmobiledrupal8[0]: Creating...
google_compute_instance.tmobiledrupal8[0]: Still creating... [10s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [20s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [30s elapsed]
google_compute_instance.tmobiledrupal8[0]: Provisioning with 'file'...
google_compute_instance.tmobiledrupal8[0]: Still creating... [40s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [50s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [1m0s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [1m10s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [1m20s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [1m30s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [1m40s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [1m50s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [2m0s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [2m10s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [2m20s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [2m30s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [2m40s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [2m50s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [3m0s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [3m10s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [3m20s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [3m30s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [3m40s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [3m50s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [4m0s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [4m10s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [4m20s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [4m30s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [4m40s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [4m50s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [5m0s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [5m10s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [5m20s elapsed]
google_compute_instance.tmobiledrupal8[0]: Still creating... [5m30s elapsed]

*Error: timeout - last error: dial tcp :22: connect: connection refused* 

```

I ran terraform apply “whcdrupalproject.tfplan” it did not run the script.sh file remotely instead it reported **Error: timeout - last error: dial tcp :22: connect: connection refused** 😞Am I missing anything in the above main.tf file? Any help will be highly appreciated and thanks in advance. I look forward to hearing from you.

Best Regards,

Kaushal

---

<div class="post-metadata">

**Author:** ![Fessant](https://sea2.discourse-cdn.com/hashicorp/user_avatar/discuss.hashicorp.com/fessant/32/26571_2.png) [@Fessant](https://discuss.hashicorp.com/u/Fessant)\
**Post date:** [March 9, 2022, 12:26pm UTC](https://discuss.hashicorp.com/t/terraform-remote-exec-provisioner-not-working/7244/2 "2022-03-09T12:26:51Z")

</div>

Hello.  
Have you tried to add inside script simple: echo “Hi from script”?  
To see in the terraform logs whether script is passed and run successfully.  
But seems the main problem, as i can see, you haven`t provided ssh key to the remote instance which will provide ability to connect.
