github.com/kcburge/terraform@v0.11.12-beta1/website/docs/provisioners/null_resource.html.markdown (about) 1 --- 2 layout: "docs" 3 page_title: "Provisioners: null_resource" 4 sidebar_current: "docs-provisioners-null-resource" 5 description: |- 6 The `null_resource` is a resource allows you to configure provisioners that 7 are not directly associated with a single exiting resource. 8 --- 9 10 # null\_resource 11 12 The `null_resource` is a resource that allows you to configure provisioners 13 that are not directly associated with a single existing resource. 14 15 A `null_resource` behaves exactly like any other resource, so you configure 16 [provisioners](/docs/provisioners/index.html), [connection 17 details](/docs/provisioners/connection.html), and other meta-parameters in the 18 same way you would on any other resource. 19 20 This allows fine-grained control over when provisioners run in the dependency 21 graph. 22 23 ## Example usage 24 25 ```hcl 26 resource "aws_instance" "cluster" { 27 count = 3 28 29 # ... 30 } 31 32 resource "null_resource" "cluster" { 33 # Changes to any instance of the cluster requires re-provisioning 34 triggers { 35 cluster_instance_ids = "${join(",", aws_instance.cluster.*.id)}" 36 } 37 38 # Bootstrap script can run on any instance of the cluster 39 # So we just choose the first in this case 40 connection { 41 host = "${element(aws_instance.cluster.*.public_ip, 0)}" 42 } 43 44 provisioner "remote-exec" { 45 # Bootstrap script called with private_ip of each node in the clutser 46 inline = [ 47 "bootstrap-cluster.sh ${join(" ", aws_instance.cluster.*.private_ip)}", 48 ] 49 } 50 } 51 ``` 52 53 ## Argument Reference 54 55 In addition to all the resource configuration available, `null_resource` supports the following specific configuration options: 56 57 * `triggers` - A mapping of values which should trigger a rerun of this set of 58 provisioners. Values are meant to be interpolated references to variables or 59 attributes of other resources.