Yeoman kullanarak Azure'da Terraform temel şablonu oluşturma
Terraform , bulut altyapısının tanımlanmasını, önizlemesini ve dağıtımını sağlar. Terraform kullanarak HCL söz dizimlerini kullanarak yapılandırma dosyaları oluşturursunuz. HCL söz dizimi, Azure gibi bulut sağlayıcısını ve bulut altyapınızı oluşturan öğeleri belirtmenize olanak tanır. Yapılandırma dosyalarınızı oluşturduktan sonra, altyapı değişikliklerinizin dağıtılmadan önce önizlemesini görüntülemenizi sağlayan bir yürütme planı oluşturursunuz. Değişiklikleri doğruladıktan sonra, altyapıyı dağıtmak için yürütme planını uygularsınız.
Bu makalede Terraform ve Yeoman birleşimini kullanmayı öğreneceksiniz. Terraform, Azure'da altyapı oluşturmaya yönelik bir araçtır. Yeoman, Terraform modülleri oluşturmayı kolaylaştırır.
Bu makalede, aşağıdaki görevlerin nasıl yapılacağını öğreneceksiniz:
- Yeoman modül oluşturucuyu kullanarak temel bir Terraform şablonu oluşturun.
- Terraform şablonunu iki farklı yöntem kullanarak test edin.
- Terraform modülünü bir Docker dosyası kullanarak çalıştırın.
- Terraform modülünü Azure Cloud Shell'de yerel olarak çalıştırın.
1. Ortamınızı yapılandırma
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Terraform'ı yapılandırma: Henüz yapmadıysanız, aşağıdaki seçeneklerden birini kullanarak Terraform'ı yapılandırın:
Visual Studio Code: Platformunuz için Visual Studio Code'ı indirin.
Docker: Yeoman oluşturucusu tarafından oluşturulan modülü çalıştırmak için Docker'ı yükleyin.
Go programlama dili: Yeoman tarafından oluşturulan test çalışmaları Go dilini kullanan kod olduğundan Go'yu yükleyin.
Nodejs:Node.js'yi yükleme
Yeoman'ı yükleyin: Şu komutu çalıştırın:
npm install -g yo
.Yeoman şablonu: Terraform modülü için Yeoman şablonunu yüklemek için aşağıdaki komutu çalıştırın:
npm install -g generator-az-terra-module
.
2. Yeoman tarafından oluşturulan modül için dizin oluşturma
Yeoman şablonu geçerli dizinde dosyaları oluşturur. Bu nedenle, bir dizin oluşturmanız gerekir.
Bu boş dizinin $GOPATH/src altına yerleştirilmesi gerekir. Bu yol hakkında daha fazla bilgi için GOPATH'i Ayarlama makalesine bakın.
Yeni dizinin oluşturulacağı üst dizine gidin.
Yer tutucuyu değiştirerek aşağıdaki komutu çalıştırın. Bu örnek için bir dizin adı
GeneratorDocSample
kullanılır.mkdir <new-directory-name>
Yeni dizine gidin:
cd <new-directory-name>
3. Temel modül şablonu oluşturma
Şu komutu çalıştırın:
yo az-terra-module
Ekrandaki yönergeleri izleyerek aşağıdaki bilgileri sağlayın:
Terraform modülü proje adı - Örneği için değeri
doc-sample-module
kullanılır.Docker görüntü dosyasını eklemek ister misiniz? - girin
y
. girersenizn
, oluşturulan modül kodu yalnızca yerel modda çalıştırmayı destekler.
Oluşturulan sonuçta elde edilen dosyaları görüntülemek için dizin içeriğini listeleyin:
ls
4. Oluşturulan modül kodunu gözden geçirin
Visual Studio Code'u başlatma
Menü çubuğundan Dosya > Klasör Aç'ı seçin ve oluşturduğunuz klasörü seçin.
Yeoman modül oluşturucu tarafından aşağıdaki dosyalar oluşturulmuştur:
main.tf
- adlırandom-shuffle
bir modül tanımlar. Giriş birstring_list
'dir. Çıktı, permütasyon sayısıdır.variables.tf
- Modül tarafından kullanılan giriş ve çıkış değişkenlerini tanımlar.outputs.tf
- Modülün çıkışlarını tanımlar. Burada, yerleşik bir Terraform modülü olan tarafındanrandom_shuffle
döndürülen değerdir.Rakefile
- Derleme adımlarını tanımlar. Bu adımlar şunlardır:build
- main.tf dosyasının biçimlendirmesini doğrular.unit
- Oluşturulan modül iskeleti birim testi için kod içermez. Bir birim testi senaryosu belirtmek isterseniz, o kodu burada eklersiniz.e2e
- Modülün uçtan uca testini çalıştırır.
test
- Test çalışmaları Go dilinde yazılır.
- Testteki tüm kodlar uçtan uca testlerdir.
- Uçtan uca testler altında
fixture
tanımlanan tüm öğeleri sağlamayı dener. Dosyadakitemplate_output.go
sonuçlar önceden tanımlanmış beklenen değerlerle karşılaştırılır. Gopkg.lock
veGopkg.toml
: Bağımlılıkları tanımlar.
Azure https://github.com/Azure/generator-az-terra-moduleiçin Yeoman oluşturucu hakkında daha fazla bilgi için Terratest belgelerine bakın.
5. Docker dosyası kullanarak Terraform modülünü test edin
Bu bölümde, Docker dosyası kullanarak Terraform modülünün nasıl test olduğu gösterilmektedir.
Dekont
Bu örnek modülü yerel olarak çalıştırır; Azure'da değil.
Docker’ın yüklü ve çalışır durumda olduğunu onaylayın
Bir komut isteminden docker version
komutunu girin.
Elde edilen çıktı, Docker'ın yüklü olduğunu onaylar.
Docker’ın gerçekten çalışır durumda olduğunu onaylamak için docker info
girin.
Docker kapsayıcısı ayarlama
Bir komut isteminden şu komutu girin:
docker build --build-arg BUILD_ARM_SUBSCRIPTION_ID= --build-arg BUILD_ARM_CLIENT_ID= --build-arg BUILD_ARM_CLIENT_SECRET= --build-arg BUILD_ARM_TENANT_ID= -t terra-mod-example .
.Başarıyla derlendi iletisi gösterilir.
Oluşturduğunuz modülün
terra-mod-example
listelendiğini görmek için komut isteminden girindocker image ls
.docker run -it terra-mod-example /bin/sh
girin. Komutu çalıştırdıktandocker run
sonra Docker ortamındasınız. Bu noktada, komutunu kullanarakls
dosyayı bulabilirsiniz.
Modülü oluşturma
Şu komutu çalıştırın:
bundle install
Şu komutu çalıştırın:
rake build
Uçtan uca testi çalıştırma
Şu komutu çalıştırın:
rake e2e
Birkaç dakika sonra BAŞARILI iletisi görünür.
Testi tamamlamak ve Docker ortamından çıkmak için girin
exit
.
6. Modül oluşturmak ve test etmek için Yeoman oluşturucu kullanın
Bu bölümde, Cloud Shell'de bir modül oluşturmak ve test etmek için Yeoman oluşturucu kullanılır. Docker dosyası kullanmak yerine Cloud Shell kullanmak işlemi büyük ölçüde basitleştirir. Cloud Shell'i kullanarak aşağıdaki ürünlerin tümü önceden yüklenmiş durumdadır:
- Node.js
- Yeoman
- Terraform
Cloud Shell oturumu başlatma
Azure portalı, shell.azure.com veya Azure mobil uygulaması aracılığıyla Bir Azure Cloud Shell oturumu başlatın.
Azure Cloud Shell'e Hoş Geldiniz sayfası açılır. Bash (Linux) öğesini seçin.
Azure depolama hesabı oluşturmadıysanız aşağıdaki ekran açılır. Depolama oluştur'u seçin.
Azure Cloud Shell, seçtiğiniz kabukta başlatılır ve sizin adınıza oluşturulan bulut sunucusuna ait bilgiler gösterilir.
Terraform modülünüzü tutmak için bir dizin hazırlama
Bu noktada, Cloud Shell sizin için ortam değişkenlerinizde GOPATH'i zaten yapılandırmış olacaktır. Yolu görmek için girin
go env
.Henüz yoksa $GOPATH dizini oluşturun: girin
mkdir ~/go
.$GOPATH dizini içinde bir dizin oluşturun. Bu dizin, bu örnekte oluşturulan farklı proje dizinlerini tutmak için kullanılır.
mkdir ~/go/src
Yer tutucunun yerine Terraform modülünüzü tutmak için bir dizin oluşturun. Bu örnek için bir dizin adı
my-module-name
kullanılır.mkdir ~/go/src/<your-module-name>
Modül dizininize gidin:
cd ~/go/src/<your-module-name>
Terraform modülünüzü oluşturma ve test edin
Aşağıdaki komutu çalıştırın ve yönergeleri izleyin. Docker dosyalarını oluşturmak isteyip istemediğiniz sorulduğunda girin
N
.yo az-terra-module
Bağımlılıkları yüklemek için aşağıdaki komutu çalıştırın:
bundle install
Modülü derlemek için aşağıdaki komutu çalıştırın:
rake build
Testi çalıştırmak için aşağıdaki komutu çalıştırın:
rake e2e
Azure'da Terraform sorunlarını giderme
Azure'da Terraform kullanırken karşılaşılan yaygın sorunları giderme
Sonraki adımlar
Azure Terraform Visual Studio Code uzantısını yükleyin ve kullanın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin