Ana içeriğe geç

dtcloud_vm_network_interface (Kaynak)

Bir sanal makineye ek bir ağ arayüzü bağlar.

Bir dtcloud_vm network bloğunda tanımlanan arayüzler makineyle birlikte oluşturulur ve makineyle birlikte silinir. Sonradan eklenen arayüzler için bu kaynağı kullanın: kendi bağlantı noktaları olur ve makine yeniden oluşturulmadan ayrılabilirler. Kaynak kimliği <vm-id>:<port-id>'dir.

Örnek Kullanım​

# Makine oluşturulduktan sonra eklenen bir arayüz. Kendi yaşam döngüsü
# vardır ve sanal makine yeniden oluşturulmadan ayrılabilir.
resource "dtcloud_vm_network_interface" "storage" {
vm_id = dtcloud_vm.web.id
network_id = dtcloud_network.storage.id
security_groups = [dtcloud_security_group.internal.id]
}

output "storage_address" {
value = dtcloud_vm_network_interface.storage.primary_ip
}

# Adresi platformun seçmesine bırakmak yerine sabitleyin.
resource "dtcloud_vm_network_interface" "pinned" {
vm_id = dtcloud_vm.web.id
network_id = dtcloud_network.storage.id

fixed_ip {
ip_address = "10.30.0.50"
}
}
not

dtcloud_vm üzerindeki network bloğuyla aynı argümanlar. İkisi de bir ağdaki bir bağlantı noktasını tanımlar; bu yüzden satır içinde çalışan bir blok burada da değiştirilmeden çalışır, tek fark ağın orada uuid, burada network_id olarak adlandırılmasıdır. Makinenin önyüklendiği arayüzler için satır içi bloğu, sonradan eklenenler için bu kaynağı kullanın.

Şema​

Zorunlu​

  • network_id (String) Bağlanılacak ağın kimliği. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • vm_id (String) Arayüzün bağlanacağı sanal makinenin kimliği. Bu değiştirilirse yeni bir kaynak oluşturulur.

İsteğe Bağlı​

  • fixed_ip (Block List) Bu arayüzdeki sabit IP'ler. Tek bir adres ayrılması için yazmayın. Yerinde değiştirilebilir. (bkz. aşağıdaki iç içe şema)
  • port_security_enabled (Boolean) Bu arayüze bağlantı noktası güvenliğinin (dolayısıyla güvenlik gruplarının) uygulanıp uygulanmadığı. Varsayılan olarak ağın kendi ayarıdır. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • security_groups (List of String) Bu arayüze bağlı güvenlik grubu kimlikleri. Yerinde değiştirilebilir. Varsayılan olarak projenin varsayılan grubudur.
  • timeouts (Block, Optional) (bkz. aşağıdaki iç içe şema)

Salt Okunur​

  • id (String) Bu kaynağın kimliği.
  • is_public (Boolean) Arayüzün genel bir ağda olup olmadığı.
  • mac_address (String) Platformun bu arayüze atadığı MAC adresi.
  • network_name (String) Ağın adı.
  • port_id (String) Platformun bu arayüz için oluşturduğu bağlantı noktasının kimliği.
  • primary_ip (String) Bu arayüzdeki birincil IP adresi.

fixed_ip için iç içe şema​

İsteğe Bağlı:

  • ip_address (String) İstenecek belirli adres. Verilmezse platform ayırır; her iki durumda da buraya geri bildirilir.
  • ip_version (Number) IP sürümü, 4 ya da 6. Yazarken yalnızca yol göstericidir: platform bağlı ağdan ayırır; bir adres seçmek için ip_address değerini sabitleyin. Atanan adresten geri bildirilir.

timeouts için iç içe şema​

İsteğe Bağlı:

  • create (String)
  • delete (String)
  • update (String)

Bilinmesi Gerekenler​

warning

Bir arayüz asla adressiz kalmaz. Platform için boş bir adres listesi "adres ayır" değil "adres yok" demektir; bu yüzden fixed_ip yazılmadığında sağlayıcı boş bir liste göndermek yerine tek bir adres ister.

  • Ayarlanmamış port_security_enabled hiç gönderilmez, bu yüzden ağın kendi ayarı geçerli olur. Platformun sonunda uyguladığı ayar geri bildirilir.
  • fixed_ip'yi değiştirmek primary_ip'yi taşır. Plan primary_ip'yi apply sonrasında bilinecek olarak gösterir.
  • Bağlantı noktası kimliği nasıl bulunur. Bağlama uç noktası hangi bağlantı noktasını oluşturduğunu bildirmez; bu yüzden sağlayıcı çağrıdan önce ve sonra makinenin arayüzlerini listeler ve yeni olanı alır. Aynı anda başka bir şey aynı makineye bir arayüz bağlarsa yanlış bağlantı noktası alınabilir. Bu yalnızca bir makine eşzamanlı olarak iki yerden arayüz aldığında önemlidir.
  • dtcloud_vm.network_interface, o kaynağın son yenilemesinden alınmış bir anlık kopyadır. Aynı apply'da burada bağlanan bir arayüz orada ancak bir sonraki yenilemeden sonra görünür.

Zaman Aşımları​

create, update ve delete için varsayılan süre 10 dakikadır. Bunları bir timeouts bloğuyla değiştirin:

resource "dtcloud_vm_network_interface" "storage" {
# ...

timeouts {
create = "30m"
}
}

İçe Aktarma​

# Bağlantı noktası kimliğini bağlama sırasında platform atar:
# <vm-id>:<port-id>
terraform import dtcloud_vm_network_interface.storage 4c9a1f37-8d25-4e60-b13f-6a7c2e5b9d88:0b3e6a92-7c14-4d58-9f26-8e1a5c7b3f99

Adresler, güvenlik grupları ve bağlantı noktası güvenliği ayarı içe aktarmadan sonra platformdan geri okunur; bu yüzden arayüzle eşleşmesi için hiçbir şeyin elle tanımlanması gerekmez.