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.