Terraform için Azure Dışarı Aktarma Nasıl Çalışır?
Bu makalede Terraform için Azure Dışarı Aktarma iş akışları tanıtabilirsiniz. Bu makalede aracın en iyi uygulama kılavuzu, geçerli sınırlamalar ve bu sınırlamaların nasıl azaltılması gerektiğini öğreneceksiniz.
Etkileşimli mod
Varsayılan olarak Terraform için Azure Dışarı Aktarma etkileşimli modda çalışır. Etkileşimli modda çalıştırdığınızda, kullanılabilir klavye kısayolları ekranın en altında listelenir.
Görev | Klavye kısayolu |
---|---|
Gezinti | |
Kaynak listesinde önceki öğeyi seçin. | ↑ -veya- k |
Kaynak listesinde sonraki öğeyi seçin. | ↓ -veya- j |
Kaynak listesinde önceki sayfaya gitme. | ← -veya- h -veya- Page Up |
Kaynak listesinde sonraki sayfaya gitme. | → -veya- l -veya- Page Down |
Kaynak listesinin başlangıcına atlayın. | g -veya- Giriş |
Kaynak listesinin sonuna atlayın. | G -veya- Ucu |
Atlanması gereken kaynakları seçme | |
Kaynağı atla (veya "Atla" olarak işaretlenmişse kaldır) | Sil |
Filtreleme işlemleri | |
Kaynak listesinde metne göre filtre tanımlama. | / |
Geçerli filtreyi temizleme | Esc |
İşlemleri kaydetme | |
Kaynak listesinin eşleme dosyasını kaydedin. Çıkış dosyası atlanmaktan etkilenir (ancak filtrelenmez). | s |
Kaynakları durum olarak dışarı aktarın (belirtilmezse --hcl-only ) ve yapılandırmayı oluşturur. |
W |
Kullanıcı deneyimi | |
Geçerli kaynak için önerileri görüntüleme. | R |
Kaynak dışarı aktarma hatalarını göster (varsa). | E |
Yardımı görüntüleme. | ? |
Bırak | |
Etkileşimli moddan çıkın. | S |
Her kaynak için Terraform için Azure Dışarı Aktarma, karşılık gelen Terraform kaynak türünü tanımaya çalışır. Eşleşme bulursa, çizgi şu göstergeyle işaretlenir: 💡.
Kaynak çözümlenemiyorsa Terraform kaynak adresini şu biçimde girmeniz gerekir: <resource type>.<resource name>
. Örneğin, azurerm_linux_virtual_machine.test
azurerm_linux_virtual_machinetest
Terraform kaynak türüne, yapılandırma dosyalarında kullanılan sanal makinenin adına başvurur.
Seçili kaynağın kullanılabilir kaynak türlerini görmek için r tuşuna basın.
Bazı durumlarda, kaynakta Terraform desteği olmaması gibi karşılık gelen Terraform kaynakları olmayan Azure kaynakları vardır. Bazı kaynaklar, sanal makine sağlanırken oluşturulan işletim sistemi Diski kaynağı gibi başka bir kaynak sağlamanın yan etkisi olarak da oluşturulabilir. Böyle durumlarda, hiçbir şey atamadan kaynakları atlayabilirsiniz.
İçeri aktarılacak tüm kaynakları gözden geçirdikten sonra Terraform yapılandırmasını oluşturmaya başlamak ve (seçili değilse--hcl-only
) Terraform durumuna içeri aktarmaya başlamak için w tuşuna basın.
Etkileşimli olmayan mod
Varsayılan olarak Terraform için Azure Dışarı Aktarma etkileşimli modda çalışır. Aracın etkileşimli olmayan modda çalıştırılması gerektiğini belirtmek için bayrağını --non-interactive
belirtin.
aztfexport [command] --non-interactive <scope>
Önemli
Terraform için Azure Dışarı Aktarma'yı çalıştırdığınız dizin boş değilse bayrağını kullanmak --hcl-only
için bayrağı eklemeniz --overwrite
gerekir.
Temel iş akışlarıyla ilgili en iyi yöntemler
Temel düzeyde, Azure Dışarı Aktarma'nın tüm kullanıcıları iki seçenek arasında bir kararla karşı karşıyadır:
Aşağıdaki alt bölümler, senaryoya göre hangi seçeneğin seçildiğine ilişkin rehberlik sağlar.
Altyapıyı yönetme
Yapılandırılan kaynakların ortamınızda istenen şekilde davrandığını doğrulamadıysanız durum olarak dışarı aktarmanız gerekmeyebilir.
Terraform'daki kaynak kümesini iş akışlarıyla terraform init plan apply
yönetmek istediğinizden eminseniz, duruma dışarı aktarma önemlidir.
Kaynakları henüz yönetmek istediğinizden emin değilseniz bayrağı geçirmeniz --hcl-only
önerilir.
Mevcut altyapı
Mevcut Terraform ortamlarına aktardığınız senaryolarda, özellikle mevcut ortamlara eklemeden önce terraform planı eşdeğeri olarak düşünmek --hcl-only
yararlı olabilir.
terraform apply
komutu, yapılandırmalarının önceden var olan duruma bağlandığı kaynakları dışarı aktarmaya eşit hale getirir. Bu senaryoda, eşleme dosyası kullanmak kaynakları listelemek ve eşlemek için çalışma zamanından tasarruf sağlar.
Altyapıyı bulma
Bir ortamda hangi kaynakların mevcut olduğundan emin değilseniz bayrağını --generate-mapping-file
belirterek doğrulayabilirsiniz. Bu konu hakkında daha fazla bilgi için bkz . Terraform için Azure Dışarı Aktarma kullanarak özelleştirilmiş kaynak seçimini ve adlandırmayı keşfetme.
Sınırlamalar
Terraform için Azure Export, Azure altyapısını Terraform koduna ve durumuna dönüştürmeye çalışan karmaşık bir araçtır. Geçerli bilinen sınırlamaları aşağıdaki alt bölümlerde açıklanmıştır.
Salt yazma özellikleri
AzureRM'deki bazı özellikler salt okunur olur ve Terraform için Azure Dışarı Aktarma'nın oluşturduğu oluşturulan koda dahil değildir. Bu sorun, HCL koduna dışarı aktarıldıktan sonra özelliği tanımlanarak giderilir.
Özellikler arası kısıtlamalar
AzureRM sağlayıcısı birbiriyle çakışan iki özellik ayarlayabilir. Terraform için Azure Dışarı Aktarma çakışan özellikleri okuduğunda, kullanıcının yalnızca bir tane yapılandırmasına rağmen her iki özelliği de aynı değere ayarlayabilir. Aynı oluşturulan yapılandırmada birden çok özellik arası kısıtlama mevcut olduğunda daha fazla komplikasyon ortaya çıkar. Bu sorunu azaltmak için yapılandırmanızda çapraz özellik çakışmalarının nerede olduğunu bilmeniz gerekir.
Kaynak kapsamı dışındaki altyapı
Kaynak kapsamlarını hedeflemek için Terraform için Azure Dışarı Aktarma'yı kullanırken, yapılandırma için gereken kaynaklar belirtilen kapsamın dışında olabilir. Örneklerden biri rol atamasıdır. Kullanıcının kapsamın dışında olan kaynakları tanımlaması gerekir.
Salt yazma özellikleri
Azure Dışarı Aktarma, yapılandırması içinde yalnızca yazma özellikleri (parolalar gibi) oluşturamaz. Yeni kaynak kümeleri oluşturmak için salt yazma özellikleri hakkında bilgi sahibi olmanız ve bunları bir yapılandırmada tanımlamanız gerekir.
Kodu kodlama standartlarına uyacak şekilde değiştirme
Kullanıcı kodunu kodlama standartlarına uyacak şekilde değiştirmek isterse birkaç gerekli işlem vardır. Bu adımlar yalnızca kullanıcı kodu gelen kutusu olmayan ortamlarda kullanmayı planlıyorsa gerekli olacaktır.
Özellik tanımlı kaynaklar
Azure'daki bazı kaynaklar üst Terraform kaynağındaki bir özellik veya tek bir Terraform kaynağı olarak tanımlanabilir. Bir örnek alt ağdır. Terraform için Azure Export, kaynağı tek bir kaynak olarak tanımlar, ancak mevcut kodlama yapılandırmanızla eşleştirmek en iyi yöntemdir.
Açık bağımlılıklar
Terraform için Azure Export şu anda yalnızca açık bağımlılıkları bildirebiliyor. Kodu gerekli örtük bağımlılıkları içerecek şekilde yeniden düzenlemek için kaynaklar arasındaki ilişkilerin eşlemesini bilmeniz gerekir.
Sabit kodlanmış değerler
Terraform için Azure Export şu anda sabit kodlanmış dizeler oluşturur. En iyi yöntem olarak, bu değerleri değişkenlere göre yeniden düzenlemeniz gerekir. Ayrıca, bayrağını --full-properties
tüm özellikleri kullanıma sunarken kullandığınızda, oluşturulan yapılandırmada bazı hassas bilgiler (gizli diziler gibi) görülebilir. Bu kodun görünürlüğünü korumak için önerilen uygulamaları kullanın.