天天看點

CLI+Terraform簡化資源管理的模闆編寫

terraform是一個比較強大的自動化資源編排管理工具,通過模闆描述資源,通過apply指令建立/更新資源。詳細的使用方法及特性可以參見公衆号中關于terraform的其他文章了解。本文将主要講解如何利用cli+terraform簡化模闆的編寫。

terraform的模闆由幾大結構組成:資源(resource)、變量(variable)、輸出(output),他還有一個很重量級的結構:資料源(data)。資料源是用來過濾資源中parameter的可選項的,舉個例子,ecs的執行個體類型(instance_type)有90多個選項,我們希望能夠根據一些條件過濾這些選項,這時便可以利用data的特性,描述需要ecs的規格(幾核 幾g 哪個系列),data結果中将會傳回符合過濾條件的清單,在resource中直接指定資料源為此data即可。data結構的例子如下:

在resource中引用:

datasource在terraform模闆編寫時為參數擷取提供了便利,如果再加上cli,使用會更便捷,在上面的模闆例子中可以通過cli友善的看到ecs的系列(instance_type_family)資料,當然也可以看到執行個體類例、鏡像、地域、可用區等資料,将其值放在模闆中,将大量簡化我們模闆編寫時對參數可選值的擷取。

cli的安裝及使用

cli安裝: sudo pip install aliyuncli

ecs調用包安裝: sudo pip install aliyun-python-sdk-ecs

配置: aliyuncli configure,按提示輸入ak、region、output format(建議table)

執行aliyuncli ecs 将能夠看到支援的指令,以上面的例子為例輸入aliyuncli ecs describeinstancetypefamilies 将能夠看到傳回的系列清單,如下圖:

CLI+Terraform簡化資源管理的模闆編寫

繼續閱讀