Bu bölümde sizlere terraform kullanırken konfigürasyon dosyalarında değişkenleri nasıl kullanabileceğinizden bahsedecem. Değişken türleri ile alakalı ilerleyen bölümlerde daha ayrıntılı yazılar yazmayı düşünüyorum.
Değişkenler default vaule’lara sahip olabilirler. Ancak eğer .tfvars file ile atanan değişkenler var ise, bunlar default value’ların üzerine yazarlar.
Tabi bir de komut ile değişkenlere değer atanabilir. Bu durumda şöyle bir mekanizma çalışır. En son atanan değer hepsinin üzerine yazar. Yani default value varsa ve .tfvars dosyasından değişken atanıyorsa, .tfvars dosyasındaki değer default değerin üzerine yazar. Ancak bunların üzerine birde komut ile değişken atanıyorsa, geçerli olan değer komut ile atanandır. Değişken kullanımındaki baskınlık seviyeleri özetle bu şekildedir.
Değişkenlere atanacak değerleri ortamlara göre atamakta mümkün. Örneğin bir resource production ortamında yüksek bir tier’da oluşturulurken, test ortamında daha düşük tier’larda oluşturulabilir.
Ayrıca boolen değere göre koşula bağlı olarak da resource’lar oluşturulabilir. Örneğin değişken herhangi bir değere sahipse değişkene true değeri değilse false değeri atanabilir. Sonrasında bu değere göre resource’lar deploy edilir yada edilmez. Yada deploy edilecek ortamda belli koşullar aranabilir. Bu koşullara bağlı olarak resource’lar deploy edilir yada edilmez.
Değişkenlerin tanımlanması belli durumlara göre farklılık gösterebilir.
Default değişken tanımlama: Değişkenler tanımlanırken default değer atanır.
Resim-1
Değişken dosyası kullanma: .tfvars uzantılı dosyaya değişkenler aşağıdaki gibi atanır.
Resim-2
Komut ile değişken atama: Değişken işlemlerin en sonunda komut ile atanır.
Resim-3
Değişkenlerde map kullanma: Map değişkenleri powershell’deki hash table’lara oldukça benzer. Değişken içerisinde key-value pair’leri tutarak belli koşullara göre değişkendeki değer elde edilir.
Örneğin aşağıdaki örnekte region’lar ve bu region’larda kullanılacak imaj id’leri belirlenmiştir. Konfigürasyon yazılırken seçilecek ortama göre bu değişkene sorgu yapılıp ilgili imaj bilgisi elde edilecektir.
Resim-4
Bunların yanında diğer programlama dillerinde olduğu gibi string,list,bool değerlerde terraform’da değişken tipi olarak atanabilir. Bunlarla ilgili ayrıntılı bilgi için aşağıdaki linkten faydalanabilirsiniz.
https://www.terraform.io/docs/configuration/variables.html
Ortam değişkeni olarak değer atama: Terraform’da TV_VAR prefixi kullanılarak değişkenler ortam değişkeni olarak atanabilir. Ortam değişkeni olarak atama yapmak için komut aşağıdaki şekilde olmalıdır.
Resim-5
Yukarıdaki şekilde atanan ortam değişkenini değişkene atamak için aşağıdaki şekilde değişken yazılmalıdır.
Resim-6
Aynı şekilde map’ler ve listelerde kolaylıkla ortam değişkeni olarak atanabilirler.
Ayrıntılı bilgi için yine aşağıdaki linkten faydalanabilirsiniz.
https://www.terraform.io/docs/configuration/variables.html
Değişkenleri özetlemiş olduk.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
https://www.terraform.io/docs/configuration/variables.html
https://www.terraform.io/docs/providers/azurerm/index.html
TAGs: Terraform, Terraform nedir, terraform nasıl kullanılır, Infrastructure as a code, IAC, Compliance management, Auto remediation, Deploy Azure Resource with terraform, Deploy configuration with terraform, configuration as a code, terraform overview, terraform basics, Azure with terraform, deploy resources to azure with terraform, terraform.exe, Update resources with terraform, Azure Resource manager, ARM, Terraform variabes, terraform map variables