github.com/jzbruno/terraform@v0.10.3-0.20180104230435-18975d727047/website/docs/provisioners/local-exec.html.markdown (about)

     1  ---
     2  layout: "docs"
     3  page_title: "Provisioner: local-exec"
     4  sidebar_current: "docs-provisioners-local"
     5  description: |-
     6    The `local-exec` provisioner invokes a local executable after a resource is created. This invokes a process on the machine running Terraform, not on the resource. See the `remote-exec` provisioner to run commands on the resource.
     7  ---
     8  
     9  # local-exec Provisioner
    10  
    11  The `local-exec` provisioner invokes a local executable after a resource is
    12  created. This invokes a process on the machine running Terraform, not on the
    13  resource. See the `remote-exec`
    14  [provisioner](/docs/provisioners/remote-exec.html) to run commands on the
    15  resource.
    16  
    17  Note that even though the resource will be fully created when the provisioner is
    18  run, there is no guarantee that it will be in an operable state - for example
    19  system services such as `sshd` may not be started yet on compute resources.
    20  
    21  ## Example usage
    22  
    23  ```hcl
    24  resource "aws_instance" "web" {
    25    # ...
    26  
    27    provisioner "local-exec" {
    28      command = "echo ${aws_instance.web.private_ip} >> private_ips.txt"
    29    }
    30  }
    31  ```
    32  
    33  ## Argument Reference
    34  
    35  The following arguments are supported:
    36  
    37  * `command` - (Required) This is the command to execute. It can be provided
    38    as a relative path to the current working directory or as an absolute path.
    39    It is evaluated in a shell, and can use environment variables or Terraform
    40    variables.
    41  
    42  * `interpreter` - (Optional) If provided, this is a list of interpreter
    43    arguments used to execute the command. The first argument is the
    44    interpreter itself. It can be provided as a relative path to the current
    45    working directory or as an absolute path.  The remaining arguments are
    46    appended prior to the command.  This allows building command lines of the
    47    form "/bin/bash", "-c", "echo foo". If `interpreter` is unspecified,
    48    sensible defaults will be chosen based on the system OS.
    49  
    50  ### Interpreter Examples
    51  
    52  ```hcl
    53  resource "null_resource" "example1" {
    54    provisioner "local-exec" {
    55      command = "open WFH, '>completed.txt' and print WFH scalar localtime"
    56      interpreter = ["perl", "-e"]
    57    }
    58  }
    59  ```
    60  
    61  ```hcl
    62  resource "null_resource" "example2" {
    63    provisioner "local-exec" {
    64      command = "Get-Date > completed.txt"
    65      interpreter = ["PowerShell", "-Command"]
    66    }
    67  }
    68  ```