github.com/erriapo/terraform@v0.6.12-0.20160203182612-0340ea72354f/website/source/docs/providers/openstack/r/compute_instance_v2.html.markdown (about) 1 --- 2 layout: "openstack" 3 page_title: "OpenStack: openstack_compute_instance_v2" 4 sidebar_current: "docs-openstack-resource-compute-instance-v2" 5 description: |- 6 Manages a V2 VM instance resource within OpenStack. 7 --- 8 9 # openstack\_compute\_instance_v2 10 11 Manages a V2 VM instance resource within OpenStack. 12 13 ## Example Usage 14 15 ``` 16 resource "openstack_compute_instance_v2" "test-server" { 17 name = "tf-test" 18 image_id = "ad091b52-742f-469e-8f3c-fd81cadf0743" 19 flavor_id = "3" 20 metadata { 21 this = "that" 22 } 23 key_pair = "my_key_pair_name" 24 security_groups = ["test-group-1"] 25 } 26 ``` 27 28 ## Argument Reference 29 30 The following arguments are supported: 31 32 * `region` - (Required) The region in which to create the server instance. If 33 omitted, the `OS_REGION_NAME` environment variable is used. Changing this 34 creates a new server. 35 36 * `name` - (Required) A unique name for the resource. 37 38 * `image_id` - (Optional; Required if `image_name` is empty and not booting 39 from a volume) The image ID of the desired image for the server. Changing 40 this creates a new server. 41 42 * `image_name` - (Optional; Required if `image_id` is empty and not booting 43 from a volume) The name of the desired image for the server. Changing this 44 creates a new server. 45 46 * `flavor_id` - (Optional; Required if `flavor_name` is empty) The flavor ID of 47 the desired flavor for the server. Changing this resizes the existing server. 48 49 * `flavor_name` - (Optional; Required if `flavor_id` is empty) The name of the 50 desired flavor for the server. Changing this resizes the existing server. 51 52 * `floating_ip` - (Optional) A *Compute* Floating IP that will be associated 53 with the Instance. The Floating IP must be provisioned already. See *Notes* 54 for more information about Floating IPs. 55 56 * `user_data` - (Optional) The user data to provide when launching the instance. 57 Changing this creates a new server. 58 59 * `security_groups` - (Optional) An array of one or more security group names 60 to associate with the server. Changing this results in adding/removing 61 security groups from the existing server. 62 63 * `availability_zone` - (Optional) The availability zone in which to create 64 the server. Changing this creates a new server. 65 66 * `network` - (Optional) An array of one or more networks to attach to the 67 instance. The network object structure is documented below. Changing this 68 creates a new server. 69 70 * `metadata` - (Optional) Metadata key/value pairs to make available from 71 within the instance. Changing this updates the existing server metadata. 72 73 * `config_drive` - (Optional) Whether to use the config_drive feature to 74 configure the instance. Changing this creates a new server. 75 76 * `admin_pass` - (Optional) The administrative password to assign to the server. 77 Changing this changes the root password on the existing server. 78 79 * `key_pair` - (Optional) The name of a key pair to put on the server. The key 80 pair must already be created and associated with the tenant's account. 81 Changing this creates a new server. 82 83 * `block_device` - (Optional) The object for booting by volume. The block_device 84 object structure is documented below. Changing this creates a new server. 85 86 * `volume` - (Optional) Attach an existing volume to the instance. The volume 87 structure is described below. 88 89 * `scheduler_hints` - (Optional) Provide the Nova scheduler with hints on how 90 the instance should be launched. The available hints are described below. 91 92 * `personality` - (Optional) Customize the personality of an instance by 93 defining one or more files and their contents. The personality structure 94 is described below. 95 96 The `network` block supports: 97 98 * `uuid` - (Required unless `port` or `name` is provided) The network UUID to 99 attach to the server. 100 101 * `name` - (Required unless `uuid` or `port` is provided) The human-readable 102 name of the network. 103 104 * `port` - (Required unless `uuid` or `name` is provided) The port UUID of a 105 network to attach to the server. 106 107 * `fixed_ip_v4` - (Optional) Specifies a fixed IPv4 address to be used on this 108 network. 109 110 * `floating_ip` - (Optional) Specifies a floating IP address to be associated 111 with this network. Cannot be combined with a top-level floating IP. See 112 *Notes* for more information about Floating IPs. 113 114 * `access_network` - (Optional) Specifies if this network should be used for 115 provisioning access. Accepts true or false. Defaults to false. 116 117 The `block_device` block supports: 118 119 * `uuid` - (Required) The UUID of the image, volume, or snapshot. 120 121 * `source_type` - (Required) The source type of the device. Must be one of 122 "image", "volume", or "snapshot". 123 124 * `volume_size` - (Optional) The size of the volume to create (in gigabytes). 125 126 * `boot_index` - (Optional) The boot index of the volume. It defaults to 0. 127 128 * `destination_type` - (Optional) The type that gets created. Possible values 129 are "volume" and "local". 130 131 The `volume` block supports: 132 133 * `volume_id` - (Required) The UUID of the volume to attach. 134 135 * `device` - (Optional) The device that the volume will be attached as. For 136 example: `/dev/vdc`. Omit this option to allow the volume to be 137 auto-assigned a device. 138 139 The `scheduler_hints` block supports: 140 141 * `group` - (Optional) A UUID of a Server Group. The instance will be placed 142 into that group. 143 144 * `different_host` - (Optional) A list of instance UUIDs. The instance will 145 be scheduled on a different host than all other instances. 146 147 * `same_host` - (Optional) A list of instance UUIDs. The instance will be 148 scheduled on the same host of those specified. 149 150 * `query` - (Optional) A conditional query that a compute node must pass in 151 order to host an instance. 152 153 * `target_cell` - (Optional) The name of a cell to host the instance. 154 155 * `build_near_host_ip` - (Optional) An IP Address in CIDR form. The instance 156 will be placed on a compute node that is in the same subnet. 157 158 The `personality` block supports: 159 160 * `file` - (Required) The absolute path of the destination file. 161 162 * `contents` - (Required) The contents of the file. Limited to 255 bytes. 163 164 ## Attributes Reference 165 166 The following attributes are exported: 167 168 * `region` - See Argument Reference above. 169 * `name` - See Argument Reference above. 170 * `access_ip_v4` - The first detected Fixed IPv4 address _or_ the 171 Floating IP. 172 * `access_ip_v6` - The first detected Fixed IPv6 address. 173 * `metadata` - See Argument Reference above. 174 * `security_groups` - See Argument Reference above. 175 * `flavor_id` - See Argument Reference above. 176 * `flavor_name` - See Argument Reference above. 177 * `network/uuid` - See Argument Reference above. 178 * `network/name` - See Argument Reference above. 179 * `network/port` - See Argument Reference above. 180 * `network/fixed_ip_v4` - The Fixed IPv4 address of the Instance on that 181 network. 182 * `network/fixed_ip_v6` - The Fixed IPv6 address of the Instance on that 183 network. 184 * `network/floating_ip` - The Floating IP address of the Instance on that 185 network. 186 * `network/mac` - The MAC address of the NIC on that network. 187 188 ## Notes 189 190 Floating IPs can be associated in one of two ways: 191 192 * You can specify a Floating IP address by using the top-level `floating_ip` 193 attribute. This floating IP will be associated with either the network defined 194 in the first `network` block or the default network if no `network` blocks are 195 defined. 196 197 * You can specify a Floating IP address by using the `floating_ip` attribute 198 defined in the `network` block. Each `network` block can have its own floating 199 IP address. 200 201 Only one of the above methods can be used.