» alicloud_network_interfaces

Use this data source to get a list of elastic network interfaces according to the specified filters in an Alibaba Cloud account.

For information about elastic network interface and how to use it, see Elastic Network Interface

» Example Usage

variable "name" {
  default = "networkInterfacesName"
}

resource "alicloud_vpc" "vpc" {
  name = "${var.name}"
  cidr_block = "192.168.0.0/24"
}

data "alicloud_zones" "default" {
  "available_resource_creation" = "VSwitch"
}

resource "alicloud_vswitch" "vswitch" {
  name = "${var.name}"
  cidr_block = "192.168.0.0/24"
  availability_zone = "${data.alicloud_zones.default.zones.0.id}"
  vpc_id = "${alicloud_vpc.vpc.id}"
}

resource "alicloud_security_group" "group" {
  name = "${var.name}"
  vpc_id = "${alicloud_vpc.vpc.id}"
}

resource "alicloud_network_interface" "interface" {
  name = "${var.name}%d"
  vswitch_id = "${alicloud_vswitch.vswitch.id}"
  security_groups = [
    "${alicloud_security_group.group.id}"]
  description = "Basic test"
  private_ip = "192.168.0.2"
  tags = {
    TF-VER = "0.11.3"
  }
}

resource "alicloud_instance" "instance" {
  availability_zone = "${data.alicloud_zones.default.zones.0.id}"
  security_groups = [
    "${alicloud_security_group.group.id}"]
  instance_type = "ecs.e3.xlarge"
  system_disk_category = "cloud_efficiency"
  image_id = "centos_7_04_64_20G_alibase_201701015.vhd"
  instance_name = "${var.name}"
  vswitch_id = "${alicloud_vswitch.vswitch.id}"
  internet_max_bandwidth_out = 10
}

resource "alicloud_network_interface_attachment" "attachment" {
  instance_id = "${alicloud_instance.instance.id}"
  network_interface_id = "${alicloud_network_interface.interface.id}"
}

data "alicloud_network_interfaces" "default" {
  ids = [
    "${alicloud_network_interface_attachment.attachment.network_interface_id}"],
  name_regex = "tf-testAccNetworkInterfacesBasic%d",
  tags = {
    TF-VER = "0.11.3"
  },
  vpc_id = "${alicloud_vpc.vpc.id}",
  vswitch_id = "${alicloud_vswitch.vswitch.id}",
  private_ip = "192.168.0.2",
  security_group_id = "${alicloud_security_group.group.id}",
  type = "Secondary",
  instance_id = "${alicloud_instance.instance.id}",
}

output "eni0_name" {
    value = "${data.alicloud_network_interfaces.default.interfaces.0.name}"
}

» Argument Reference

The following arguments are supported:

  • ids - (Optional) A list of ENI IDs.
  • name_regex - (Optional) A regex string to filter results by ENI name.
  • vpc_id - (Optional) The VPC ID linked to ENIs.
  • vswitch_id - (Optional) The VSwitch ID linked to ENIs.
  • private_ip - (Optional) The primary private IP address of the ENI.
  • security_group_id - (Optional) The security group ID linked to ENIs.
  • name - (Optional) The name of the ENIs.
  • type - (Optional) The type of ENIs, Only support for "Primary" or "Secondary".
  • instance_id - (Optional) The ECS instance ID that the ENI is attached to.
  • tags - (Optional) A map of tags assigned to ENIs.
  • output_file - (Optional) The name of output file that saves the filter results.

» Attributes Reference

The following attributes are exported in addition to the arguments listed above:

  • interfaces - A list of ENIs. Each element contains the following attributes:
    • id - ID of the ENI.
    • status - Current status of the ENI.
    • vpc_id - ID of the VPC that the ENI belongs to.
    • vswitch_id - ID of the VSwitch that the ENI is linked to.
    • zone_id - ID of the availability zone that the ENI belongs to.
    • public_ip - Public IP of the ENI.
    • private_ip - Primary private IP of the ENI.
    • private_ips - A list of secondary private IP address that is assigned to the ENI.
    • mac - MAC address of the ENI.
    • security_groups - A list of security group that the ENI belongs to.
    • name - Name of the ENI.
    • description - Description of the ENI.
    • instance_id - ID of the instance that the ENI is attached to.
    • creation_time - Creation time of the ENI.
    • tags - A map of tags assigned to the ENI.