Ana içeriğe geç

dtcloud_elastic_ip (Kaynak)

Genel (elastik) bir IP adresi ayırır ve isteğe bağlı olarak onu bir bağlantı noktasına yönlendirir.

Üç işlem doğrudan Terraform'a karşılık gelir: create adresi ayırır, update onu ilişkilendirir ya da ilişkisini kaldırır, delete onu serbest bırakır. İlişkilendirmenin kendisi port_id'dir ve onu yazan tek argümandır; ayrı bir ilişkilendirme kaynağı yoktur. API ve SDK buna floating IP der.

Örnek Kullanım​

# Genel bir adres ayırın ve hiçbir şeye bağlamadan bırakın.
resource "dtcloud_elastic_ip" "spare" {
floating_network_id = var.external_network_id
}

# Ayırın ve bir makinenin bağlantı noktasına yönlendirin. Adresi başka
# bir bağlantı noktasına taşımak yerinde bir güncellemedir: adresin
# kendisi hiç serbest bırakılmaz.
resource "dtcloud_elastic_ip" "web" {
floating_network_id = var.external_network_id
port_id = dtcloud_vm_network_interface.web.port_id
}
not

Dış ağı bulmak. floating_network_id makinenizin bulunduğu ağ değil, dış ağdır: router'ınızın ağ geçidinin bulunduğu ağ. dtcloud_router bunu external_network_id olarak bildirir -- router'ı siz yönetiyorsanız kaynakta, yönetmiyorsanız data source üzerinden -- ve dtctl router externals de aynı bilgiyi yazdırır.

Şema​

Zorunlu​

  • floating_network_id (String) Adresin ayrılacağı dış ağın kimliği: router'ınızın ağ geçidinin bulunduğu ağ. dtcloud_router bunu external_network_id olarak bildirir. Bu değiştirilirse yeni bir kaynak oluşturulur.

İsteğe Bağlı​

  • fixed_ip_address (String) Birden fazla adresi olan bir bağlantı noktasında hangi adrese eşleneceği. Verilmezse platform birini seçer.
  • port_id (String) Adresin yönlendirileceği bağlantı noktasının kimliği. İlişkiyi kaldırmak için silin. Bir sanal makinenin bağlantı noktaları network_interface bloklarındadır: dtcloud_vm.web.network_interface[0].port_id.
  • subnet_id (String) Adresin alınacağı, dış ağa ait belirli bir alt ağın kimliği. Yalnızca ayırma sırasında kullanılır ve hiç geri bildirilmez; içe aktarma notuna bakın. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • timeouts (Block, Optional) (bkz. aşağıdaki iç içe şema)

Salt Okunur​

  • created_at (String) Adresin ayrıldığı zaman, RFC 3339 biçiminde.
  • description (String) Adresin açıklaması. Salt okunur: ne oluşturma ne de güncelleme yolu açıklama kabul eder, bu yüzden yalnızca Terraform dışında oluşturulmuş bir adreste dolu olur.
  • device_id (String) Bağlantı noktasının arkasındaki kaynağın kimliği: bu adresin şu anda ulaştığı sanal makine ya da yük dengeleyici. Adres ilişkilendirilmemişse boştur.
  • device_owner (String) Platformun etiketlediği haliyle bağlantı noktasının arkasında ne tür bir şey olduğu, örn. bir sanal makine için compute:nova. Adres ilişkilendirilmemişse boştur.
  • id (String) Bu kaynağın kimliği.
  • ip_address (String) Ayrılan genel adres. Paylaşılacak değer budur.
  • router_id (String) Trafiği taşıyan yönlendiricinin kimliği; adres ilişkilendirildiğinde doldurulur.
  • status (String) Adres ilişkilendirilmişse ACTIVE, değilse DOWN. DOWN bir arıza değil, kararlı bir durumdur.
  • updated_at (String) Adresin son değiştirildiği zaman, RFC 3339 biçiminde.

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

İsteğe Bağlı:

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

Bilinmesi Gerekenler​

  • Adresi taşımak yeniden oluşturma değil, güncellemedir. port_id'yi değiştirmek aynı adresi başka bir yere yönlendirir; böylece zaten DNS'te ya da bir güvenlik duvarı kuralında bulunan bir adres asla kaybedilmez. Yalnızca floating_network_id ve subnet_id yeni bir adres gerektirir.
  • İlişkiyi kaldırmak ya hep ya hiçtir. Güncelleme uç noktasının kısmi bir modu yoktur: bağlantı noktası belirtmeyen bir istek adresi ayırır. İlişkilendirmenin bu kaynakta durmasının nedeni de budur: aynı alanı aynı çağrıyla yazan iki kaynak birbirinin yaptığını geri alırdı.
  • DOWN kararlı bir durumdur. Hiçbir şeye bağlı olmayan ayrılmış bir adres DOWN bildirir. Yine de kota tüketir ve faturalandırılır; bunları status = "DOWN" ile dtcloud_elastic_ips bulur.
  • fixed_ip_address için port_id gerekir. Bağlantı noktası olmadan ayarlanması plan aşamasında reddedilir. Verilmezse hiç gönderilmez ve platform bağlantı noktasında bir adres seçer; adresin, önceki adrese sahip olmayan bir bağlantı noktasına taşınabilmesini sağlayan budur.
  • Birden fazla IPv4 adresi olan bir bağlantı noktası fixed_ip_address gerektirir. Platform sizin yerinize birini seçmez ve bir bağlantı noktasının hangi adreslere sahip olduğu ancak çağrı yapıldığında bilinir; bu yüzden hata plan aşamasında değil apply sırasında çıkar.
  • port_id'yi değiştirmek adresin ulaştığı yeri yeniler. status, device_id, device_owner ve router_id apply sonrasında bilinecek olarak görünür.

Zaman Aşımları​

create, update ve delete için varsayılan süre 10 dakikadır. Ayırma ve ilişkilendirme eşzamansızdır: sağlayıcı, adres kendisinden istenen bağlantı noktasını bildirene kadar bekler. Bunları bir timeouts bloğuyla değiştirin:

resource "dtcloud_elastic_ip" "web" {
# ...

timeouts {
update = "20m"
}
}

İçe Aktarma​

terraform import dtcloud_elastic_ip.web 5c1e7b93-2fd4-4a08-9b6e-1c3a7d2f8e44

port_id, fixed_ip_address ve salt okunur öznitelikler geri okunur. subnet_id okunmaz: API onu hiç bildirmez, bu yüzden içe aktarılan bir adreste boştur. Boş değer değişiklik sayılmaz, dolayısıyla yeni bir adres önerilmez; ancak adresin hangi alt ağdan geldiği önemliyse onu yapılandırmaya yazın.