透過Terraform實現雲端Volume自動化
本解決方案使用ONTAP Terraform模組、記錄AWS(CVO單一節點、CVO HA和FSX0)和Azure(CVO單一節點、CVO HA和ANF)上的雲端Volume自動化部署。您可以在找到該程式碼 https://github.com/NetApp/na_cloud_volumes_automation
先決條件
-
Terraform >= 0.13
-
Cloud Manager帳戶
-
雲端供應商帳戶:AWS、Azure
-
主機(Terraform支援的任何作業系統)
供應商文件
Terraform Cloud Manager供應商的文件可在下列網址取得: "https://registry.terraform.io/providers/NetApp/netapp-cloudmanager/latest/docs"
控制供應商版本
請注意、您也可以控制供應商版本。這是由Terraform組態中的必要供應商區塊所控制。
語法如下:
深入瞭解供應商版本控制。
執行特定模組
AWS
本節包含各種Terraform組態檔案、可在Cloud Volumes ONTAP AWS(Amazon Web Services)上部署/設定單一節點NetApp CVO(英文)。
若要執行範本:
-
複製儲存庫。
-
瀏覽至所需的資料夾
-
從CLI設定AWS認證資料。
-
AWS存取金鑰ID [無]:存取金鑰
-
AWS秘密存取金鑰[無]:秘密金鑰
-
預設區域名稱[無]:us-west-2
-
預設輸出格式[無]:JSON
-
-
更新「vars/AWS/CVO_sine_node_deployment.tfvars」中的變數值
您可以將變數「AWs_connector部署布爾」值設為true/false、以選擇部署連接器。 -
初始化Terraform儲存庫、以安裝所有先決條件並準備部署。
-
使用Terraform validate命令驗證Terraform檔案。
-
執行組態的乾燥執行、預覽部署所預期的所有變更。
-
執行部署
以刪除部署
《Connector》(連接器)
NetApp AWS連接器執行個體的Terraform變數、適用於CVO部署。
名稱 | 類型 | 說明 |
---|---|---|
* AWs_connector部署布爾* |
布爾 |
(必填)檢查連接器部署。 |
* AWS連接器名稱* |
字串 |
(必填)Cloud Manager Connector的名稱。 |
* AWS連接器區域* |
字串 |
(必填)建立Cloud Manager Connector的區域。 |
* AWS連接器_key_name* |
字串 |
(必填)連接器執行個體要使用的金鑰配對名稱。 |
* AWs_connector公司* |
字串 |
(必填)使用者的公司名稱。 |
* AWs_connector執行個體類型* |
字串 |
(必要)執行個體類型(例如T3.xLarge)。至少需要4個CPU和16 GB記憶體。 |
* AWs_connector子網路ID * |
字串 |
(必要)執行個體的子網路ID。 |
* AWs_connector安全性群組ID * |
字串 |
(必填)執行個體的安全性群組ID、可提供以'、'分隔的多個安全性群組。 |
* AWS連接器_iam_instance_profile名稱* |
字串 |
(必填)Connector執行個體設定檔的名稱。 |
* AWS連接器帳戶ID * |
字串 |
(可選)Connector將關聯的NetApp帳戶ID。如果未提供、Cloud Manager會使用第一個帳戶。如果沒有帳戶存在、Cloud Manager會建立新帳戶。您可以在Cloud Manager的帳戶索引標籤中找到帳戶ID、網址為 https://cloudmanager.netapp.com。 |
* AWS連接器_public_ip_bool * |
布爾 |
(選用)表示是否要將公用IP位址與執行個體建立關聯。如果未提供、則會根據子網路的組態來進行關聯。 |
單一節點執行個體
單一NetApp CVO執行個體的Terraform變數。
名稱 | 類型 | 說明 |
---|---|---|
* CVO名稱* |
字串 |
(必填)Cloud Volumes ONTAP 運作環境的名稱。 |
* CVO_region* |
字串 |
(必填)將建立工作環境的區域。 |
* CVO_SUBNET_ID* |
字串 |
(必填)要建立工作環境的子網路ID。 |
* CVO_VPC_id* |
字串 |
(選用)將建立工作環境的VPC ID。如果未提供此引數、則會使用提供的子網路ID來計算VPC。 |
* CVO_SVM_Password* |
字串 |
(必填)Cloud Volumes ONTAP 用於執行功能的管理員密碼。 |
* CVO寫入速度狀態* |
字串 |
(選用)Cloud Volumes ONTAP 適用於下列項目的寫入速度設定:['正常'、'高速'。預設值為「正常」。 |
Azure
本節包含各種Terraform組態檔案、可在Azure NetApp Files Azure上部署/設定anf(簡稱「還原」)Volume。
若要執行範本:
-
複製儲存庫。
-
瀏覽至所需的資料夾
-
登入Azure CLI(必須安裝Azure CLI)。
-
更新「vars/azure_anf.tfvars」中的變數值。
您可以選擇使用現有的vnet和子網路來部署ANF磁碟區、方法是將變數「vnet_creation_bool」和「subnet_creation_bool」值設為假、並提供「subnet_id_for_anf_vol」。您也可以將這些值設為true、然後建立新的vnet和子網路、在這種情況下、子網路ID會自動取自新建立的子網路。 -
初始化Terraform儲存庫、以安裝所有先決條件並準備部署。
-
使用Terraform validate命令驗證Terraform檔案。
-
執行組態的乾燥執行、預覽部署所預期的所有變更。
-
執行部署
以刪除部署
單一節點執行個體
單一NetApp ANF Volume的Terraform變數。
名稱 | 類型 | 說明 |
---|---|---|
* AZ位置* |
字串 |
(必填)指定資源所在的受支援Azure位置。變更這項設定會強制建立新資源。 |
* AZ_prefix* |
字串 |
(必填)應建立NetApp Volume的資源群組名稱。變更這項設定會強制建立新資源。 |
* AZ_vnet_address_space* |
字串 |
(必要)新建立的vnet用於ANF Volume部署的位址空間。 |
* AZ_SUBNET_address_prefix* |
字串 |
(必填)新建立的vnet用於anf Volume部署的子網路位址首碼。 |
* AZ Volume路徑* |
字串 |
(必要)磁碟區的唯一檔案路徑。用於建立掛載目標。變更這項設定會強制建立新資源。 |
* AZ容量_Pool_Size* |
整數 |
(必填)容量資源池大小、以TB為範圍。 |
* AZ vnet_creation_bbool * |
布林值 |
(必填)如果您要建立新的vnet、請將此布林值設為「true」。將其設為「假」以使用現有的vnet。 |
* AZ子網路_建立_ bool * |
布林值 |
(必填)將布林值設為「true」、以建立新的子網路。將其設為「假」以使用現有的子網路。 |
* AZ子網路_id_for_anf_vol* |
字串 |
(必填)如果您決定使用現有子網路、請提及子網路ID、方法是將「shubnet_creation_bool」設為true。如果設為假、請保留預設值。 |
* AZ _NetApp_Pool_service_level * |
字串 |
(必要)檔案系統的目標效能。有效值包括"Premium"、"tandard"或"Ultra"。 |
* AZ _NetApp_vol_service_level * |
字串 |
(必要)檔案系統的目標效能。有效值包括"Premium"、"tandard"或"Ultra"。 |
* AZ_NetApp_vol_PROPON* |
字串 |
(選用)以清單形式表示的目標Volume傳輸協定。支援的單一值包括「CIFS」、「NFSv3」或「NFSv4.1」。如果未定義參數、則預設為NFSv3。變更這項設定會強制建立新資源、而且資料將會遺失。 |
* AZ_NetApp_vol_SECID_風格* |
字串 |
(選用)Volume安全型態、接受的值為「Unix」或「NTFS」。如果未提供、則會建立單一傳輸協定磁碟區、如果是「NFSv3」或「NFSv4.1」磁碟區、如果是「CIFS」、則預設為「NTFS」。如果未提供雙傳輸協定磁碟區、其值將為「NTFS」。 |
* AZ_NetApp_vol_storage儲存配額* |
字串 |
(必填)檔案系統允許的最大儲存配額(GB)。 |
|
根據建議、此指令碼會使用 prevent_destroy 生命週期引數、以降低組態檔案中意外遺失資料的可能性。如需的詳細資訊、請參閱 prevent_destroy 生命週期引數請參閱 terraform 文件: https://developer.hashicorp.com/terraform/tutorials/state/resource-lifecycle#prevent-resource-deletion。
|
GCP
本節包含各種Terraform組態檔案、可在Cloud Volumes ONTAP GCP(Google Cloud Platform)上部署/設定單一節點NetApp CVO(英文)。
若要執行範本:
-
複製儲存庫。
-
瀏覽至所需的資料夾
-
將GCP驗證金鑰Json檔案儲存在目錄中。
-
更新「vars/gcp_CVO_sine_node_deployment.tfvars」中的變數值
您可以將變數「GCP_connector部署布爾」值設為true/false、以選擇部署連接器。 -
初始化Terraform儲存庫、以安裝所有先決條件並準備部署。
-
使用Terraform validate命令驗證Terraform檔案。
-
執行組態的乾燥執行、預覽部署所預期的所有變更。
-
執行部署
以刪除部署
《Connector》(連接器)
NetApp GCP連接器執行個體的Terraform變數、適用於CVO部署。
名稱 | 類型 | 說明 |
---|---|---|
* GCP_connector部署布爾* |
布爾 |
(必填)檢查連接器部署。 |
* GCP_connector名稱* |
字串 |
(必填)Cloud Manager Connector的名稱。 |
* GCP_connector專案_id* |
字串 |
(必填)要建立連接器的GCP專案ID。 |
* GCP_connector區域* |
字串 |
(必填)要建立連接器的GCP區域。 |
* GCP_connector公司* |
字串 |
(必填)使用者的公司名稱。 |
* GCP_connector服務帳戶電子郵件* |
字串 |
(必填)連接器執行個體的service_account電子郵件。此服務帳戶可讓Connector建立Cloud Volume ONTAP 。 |
* GCP_connector服務帳戶路徑* |
字串 |
(必填)用於GCP授權的service_account Json檔案本機路徑。此服務帳戶用於在GCP中建立Connector。 |
* GCP_connector帳戶ID* |
字串 |
(可選)Connector將關聯的NetApp帳戶ID。如果未提供、Cloud Manager會使用第一個帳戶。如果沒有帳戶存在、Cloud Manager會建立新帳戶。您可以在Cloud Manager的帳戶索引標籤中找到帳戶ID、網址為 https://cloudmanager.netapp.com。 |
單一節點執行個體
GCP上單一NetApp CVO執行個體的Terraform變數。
名稱 | 類型 | 說明 |
---|---|---|
* GCP_CVO_name* |
字串 |
(必填)Cloud Volumes ONTAP 運作環境的名稱。 |
* GCP_CVO_PROPON_ID* |
字串 |
(必填)GCP專案的ID。 |
* GCP_CVO_ZONE * |
字串 |
(必填)將建立工作環境的區域。 |
* GCP_CVO_GCP_service_account* |
字串 |
(必填)GCP_service_Account電子郵件、以便將冷資料分層至Google Cloud Storage。 |
* GCP_CVO_SVM_password* |
字串 |
(必填)Cloud Volumes ONTAP 用於執行功能的管理員密碼。 |
* GCP_CVO_Workby_id* |
字串 |
(選用)您要部署Cloud Volumes ONTAP 的Cloud Manager工作區ID。如果未提供、Cloud Manager會使用第一個工作區。您可以在的「工作區」索引標籤中找到ID https://cloudmanager.netapp.com。 |
* GCP_CVO授權類型* |
字串 |
(選用)要使用的授權類型。對於單一節點:['容量-付費'、'GCP-cot-explore-paygo '、'GCP-cot-Standard-paygo '、'GCP-cot-paygo、'GCP-cot-payol'、]、 HA:['ha-cape-payga'、'gcp-ha-cot-explore-payga'、'gcp-ha-cot-Standard-payga'、'gcp-ha-cot-payga'、'gcp-ha-cot-payol']。單一節點的預設值為「cape-paygo」、HA的預設值為「ha-cape-paygo」。 |
* GCP_CVO_capid_package_name* |
字串 |
(選用)容量套件名稱:「Essential」、「Professional」、「Freemium」。預設為「Essential」。 |