java定义变量的输入_Terraform中输入变量
Terraform中輸入變量
把所有的信息,如access_key等全部硬編碼顯然是不安全的。因此需要能夠參數(shù)化配置。
變量定義
首先需要先定義(聲明)變量,放到一個(gè).tf文件中,如:
variable "access_key" {}
variable "secret_key" {}
variable "region" {
default = "us-east-1"
}
上面定義了三個(gè)變量。前兩個(gè)變量是空的,第三個(gè)給了一個(gè)默認(rèn)值(默認(rèn)參數(shù))。此時(shí)運(yùn)行terraform plan,Terraform會(huì)提示輸入這些尚未定義的變量。
在配置中使用變量
變量定義好后,就可以引用這些變量來(lái)進(jìn)行Terraform的配置,如:
provider "aws" {
access_key="${var.access_key}"
secret_key="${var.secret_key}"
region="${var.region}"
}
引用變量,使用${var.xxx}的形式。
變量賦值
前面我們聲明了變量,但是還沒(méi)有給變量賦值,無(wú)法真正使用。給變量賦值,有以下幾種方法,下面幾種方法按照變量賦值的優(yōu)先順序排序。
Command-line flags
使用terraform的各種命令時(shí),使用-var選項(xiàng),可以在后面直接跟變量的定義,如: # terraform apply \
-var 'access_key=foo'
-var 'secret_key=bar'
# ...
以這種方式賦值變量是一次性的,并不會(huì)保存它們的值,也就是說(shuō)下一次重新執(zhí)行命令時(shí),需要重新賦值。
從文件導(dǎo)入
為永久性存儲(chǔ)一個(gè)變量的值,可以將其放在文件中保存。Terraform會(huì)自動(dòng)加載當(dāng)前目錄下擴(kuò)展名為.tfvars和.auto.tfvars的文件來(lái)填充定義的變量。如果以其他格式存放,可以使用-var-file選項(xiàng)來(lái)手動(dòng)指定需要加載的變量值文件。這些文件使用Terraform格式或JSON格式。
使用文件也方便版本控制,但是用戶(hù)名、密碼這種東西就不要用版本控制管理的。因此可以將用戶(hù)名和密碼這類(lèi)信息單獨(dú)放在一個(gè)文件中,使用-var-file來(lái)手動(dòng)指定。其他的,可以自動(dòng)填充,方便使用版本控制管理的,可以直接放在.tfvars文件中,Terraform會(huì)自動(dòng)加載。
環(huán)境變量
Terraform會(huì)讀取TF_VAR_name這種格式的環(huán)境變量,用來(lái)填充定義好的變量。比如,環(huán)境變量中有一個(gè)TF_VAR_access_key的變量,Terraform就會(huì)讀取到,并用于填充access_key變量。
default值
如果某個(gè)變量沒(méi)有采用以上任何一種方法來(lái)進(jìn)行賦值,那么如果在變量的定義中有個(gè)default屬性,那么Terraform就會(huì)使用default的值來(lái)對(duì)變量進(jìn)行賦值。
交互輸入
沒(méi)有使用任何方法來(lái)對(duì)變量賦值,在輸入命令時(shí)使得Terraform不知道如何處理,此時(shí)就會(huì)出現(xiàn)交互界面,讓用戶(hù)手動(dòng)輸入變量值,來(lái)給變量賦值。
轉(zhuǎn)載至鏈接:https://my.oschina.net/u/2561528/blog/1933533
總結(jié)
以上是生活随笔為你收集整理的java定义变量的输入_Terraform中输入变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux路由信息预览为空,route
- 下一篇: 事业单位计算机初级考试科目一模拟试题,广