github.com/leeprovoost/terraform@v0.6.10-0.20160119085442-96f3f76118e7/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.
    54  
    55  * `user_data` - (Optional) The user data to provide when launching the instance.
    56      Changing this creates a new server.
    57  
    58  * `security_groups` - (Optional) An array of one or more security group names
    59      to associate with the server. Changing this results in adding/removing
    60      security groups from the existing server.
    61  
    62  * `availability_zone` - (Optional) The availability zone in which to create
    63      the server. Changing this creates a new server.
    64  
    65  * `network` - (Optional) An array of one or more networks to attach to the
    66      instance. The network object structure is documented below. Changing this
    67      creates a new server.
    68  
    69  * `metadata` - (Optional) Metadata key/value pairs to make available from
    70      within the instance. Changing this updates the existing server metadata.
    71  
    72  * `config_drive` - (Optional) Whether to use the config_drive feature to
    73      configure the instance. Changing this creates a new server.
    74  
    75  * `admin_pass` - (Optional) The administrative password to assign to the server.
    76      Changing this changes the root password on the existing server.
    77  
    78  * `key_pair` - (Optional) The name of a key pair to put on the server. The key
    79      pair must already be created and associated with the tenant's account.
    80      Changing this creates a new server.
    81  
    82  * `block_device` - (Optional) The object for booting by volume. The block_device
    83      object structure is documented below. Changing this creates a new server.
    84  
    85  * `volume` - (Optional) Attach an existing volume to the instance. The volume
    86      structure is described below.
    87  
    88  * `scheduler_hints` - (Optional) Provide the Nova scheduler with hints on how
    89      the instance should be launched. The available hints are described below.
    90  
    91  * `personality` - (Optional) Customize the personality of an instance by
    92      defining one or more files and their contents. The personality structure
    93      is described below.
    94  
    95  The `network` block supports:
    96  
    97  * `uuid` - (Required unless `port`  or `name` is provided) The network UUID to
    98      attach to the server.
    99  
   100  * `name` - (Required unless `uuid` or `port` is provided) The human-readable
   101      name of the network.
   102  
   103  * `port` - (Required unless `uuid` or `name` is provided) The port UUID of a
   104      network to attach to the server.
   105  
   106  * `fixed_ip_v4` - (Optional) Specifies a fixed IPv4 address to be used on this
   107      network.
   108  
   109  The `block_device` block supports:
   110  
   111  * `uuid` - (Required) The UUID of the image, volume, or snapshot.
   112  
   113  * `source_type` - (Required) The source type of the device. Must be one of
   114      "image", "volume", or "snapshot".
   115  
   116  * `volume_size` - (Optional) The size of the volume to create (in gigabytes).
   117  
   118  * `boot_index` - (Optional) The boot index of the volume. It defaults to 0.
   119  
   120  * `destination_type` - (Optional) The type that gets created. Possible values
   121      are "volume" and "local".
   122  
   123  The `volume` block supports:
   124  
   125  * `volume_id` - (Required) The UUID of the volume to attach.
   126  
   127  * `device` - (Optional) The device that the volume will be attached as. For
   128      example:  `/dev/vdc`. Omit this option to allow the volume to be
   129      auto-assigned a device.
   130  
   131  The `scheduler_hints` block supports:
   132  
   133  * `group` - (Optional) A UUID of a Server Group. The instance will be placed
   134      into that group.
   135  
   136  * `different_host` - (Optional) A list of instance UUIDs. The instance will
   137      be scheduled on a different host than all other instances.
   138  
   139  * `same_host` - (Optional) A list of instance UUIDs. The instance will be
   140      scheduled on the same host of those specified.
   141  
   142  * `query` - (Optional) A conditional query that a compute node must pass in
   143      order to host an instance.
   144  
   145  * `target_cell` - (Optional) The name of a cell to host the instance.
   146  
   147  * `build_near_host_ip` - (Optional) An IP Address in CIDR form. The instance
   148      will be placed on a compute node that is in the same subnet.
   149  
   150  The `personality` block supports:
   151  
   152  * `file` - (Required) The absolute path of the destination file.
   153  
   154  * `contents` - (Required) The contents of the file. Limited to 255 bytes.
   155  
   156  ## Attributes Reference
   157  
   158  The following attributes are exported:
   159  
   160  * `region` - See Argument Reference above.
   161  * `name` - See Argument Reference above.
   162  * `access_ip_v4` - The first detected Fixed IPv4 address _or_ the
   163      Floating IP.
   164  * `access_ip_v6` - The first detected Fixed IPv6 address.
   165  * `metadata` - See Argument Reference above.
   166  * `security_groups` - See Argument Reference above.
   167  * `flavor_id` - See Argument Reference above.
   168  * `flavor_name` - See Argument Reference above.
   169  * `network/uuid` - See Argument Reference above.
   170  * `network/name` - See Argument Reference above.
   171  * `network/port` - See Argument Reference above.
   172  * `network/fixed_ip_v4` - The Fixed IPv4 address of the Instance on that
   173      network.
   174  * `network/fixed_ip_v6` - The Fixed IPv6 address of the Instance on that
   175      network.
   176  * `network/mac` - The MAC address of the NIC on that network.
   177  
   178  ## Notes
   179  
   180  If you configure the instance to have multiple networks, be aware that only
   181  the first network can be associated with a Floating IP. So the first network
   182  in the instance resource _must_ be the network that you have configured to
   183  communicate with your floating IP / public network via a Neutron Router.