自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 Terraform 創(chuàng)建 Azure 虛擬機

云計算 虛擬化
在 Azure 上創(chuàng)建虛擬機,我也從一開始的 Web 頁面專項 CLI,再到現(xiàn)在因為需要復(fù)雜配置時的 Terraform。這篇文章就分享下如何使用 Terraform 配置 Azure 虛擬機的創(chuàng)建。

之前寫過一篇 使用 Terraform 部署 Proxmox 虛擬機,那是一臺 Core i7-8700 + 64G 的 Homelab 上搭建的虛擬機環(huán)境,這也是我一直以來的實驗環(huán)境。直至去年加入微軟 MVP 拿到了 Azure 的 credit,在需要資源較多或者拉取鏡像頻繁的情況下我也會選擇使用 Azure 的虛擬機,尤其是最近經(jīng)常在多集群的環(huán)境做測試。

在 Azure 上創(chuàng)建虛擬機,我也從一開始的 Web 頁面專項 CLI,再到現(xiàn)在因為需要復(fù)雜配置時的 Terraform。這篇文章就分享下如何使用 Terraform 配置 Azure 虛擬機的創(chuàng)建。

Terraform[1] 是一個基礎(chǔ)設(shè)施即代碼的軟件工具。使用 Terraform 可以通過編寫代碼來描述基礎(chǔ)設(shè)施(包括虛擬機、負(fù)載均衡器、數(shù)據(jù)庫等云和本地資源)的期望狀態(tài),安全靈活高效地構(gòu)建、更改和版本化云和本地資源。

前置條件

在開始之前,確保已經(jīng)具備如下條件:

  • Azure 賬戶
  • Terraform CLI[2]
  • Azure CLI[3]

認(rèn)證

既然要做自動化,第一步就要解決認(rèn)證的問題,畢竟每次都進(jìn)行手工認(rèn)證是不現(xiàn)實的,不符合懶人的特征。

Terraform 的 Azure Provider[4] 支持 5 種認(rèn)證方式[5]。由于我只在本地使用,故本文是通過 Azure CLI 的方式[6] 進(jìn)行認(rèn)證。

執(zhí)行下面的命令開啟認(rèn)證,認(rèn)證之前需訪問 https://portal.azure.com/#settings/directory 獲取 tenant 信息。

az login --tenant  xxxx

執(zhí)行命令后會自動跳轉(zhuǎn)到瀏覽器,完成認(rèn)證流程。

認(rèn)證成功后,可通過命令查看賬戶信息。

az account show
{
"environmentName": "AzureCloud",
"homeTenantId": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"isDefault": true,
"managedByTenants": [],
"name": "Microsoft Azure 贊助",
"state": "Enabled",
"tenantId": "00000000-0000-0000-0000-000000000000",
"user": {
"name": "mail@example.com",
"type": "user"
}
}

如果有多個訂閱,需要設(shè)置當(dāng)前賬戶使用的訂閱。

az account set --subscription 00000000-0000-0000-0000-000000000000

代碼

腳本已經(jīng)提交在 GitHub 上,可以訪問 https://github.com/addozhang/terraform-azure-sample 獲取。

將代碼克隆到本地。

git clone https://github.com/addozhang/terraform-azure-sample.git

腳本包含了兩部分:

  • resource-group:Azure 上的所有資源都是在某個資源組下創(chuàng)建的,在創(chuàng)建虛擬機之前需要先創(chuàng)資源組,或使用已有的資源組。在創(chuàng)建資源組的同時,也會創(chuàng)建虛擬網(wǎng)絡(luò)和子網(wǎng)。
  • virtual-machine:顧名思義,創(chuàng)建虛擬機資源。

創(chuàng)建資源組

進(jìn)入到目錄 resource-group 中,先執(zhí)行下面的命令來初始化 Terraform 和下載 Azure provider。

terraform init

在 variables.tf 文件中定義了入?yún)ⅲ嘿Y源組名和位置。執(zhí)行下面的命令可以創(chuàng)建資源組,也可在創(chuàng)建時通過參數(shù)來指定名字和位置。

執(zhí)行命令檢查 Terraform 代碼。

terraform validate

執(zhí)行下面的命令來應(yīng)用代碼。

# 在 resource-group 目錄中執(zhí)行
terraform apply
# 或者
terraform apply -var "name=demo" -var "location=eastasia"

通過 terraform state list? 查看創(chuàng)建的資源?;蛘咄ㄟ^ terrafor show 來查看資源的詳細(xì)信息。

terraform state list

azurerm_resource_group.demo
azurerm_subnet.demo
azurerm_virtual_network.demo

創(chuàng)建虛擬機

進(jìn)入到目錄 virtual-machine 目錄,依然是先運行命令進(jìn)行初始化。

terraform init

創(chuàng)建虛擬機的參數(shù)就會多一些,具體參數(shù)定義可以查看 variables.tf?,通過 terraform.tfvars 文件可以設(shè)置參數(shù)值,這里 需要指定使用的訂閱 ID。

執(zhí)行代碼和參數(shù)檢查。

terraform validate

執(zhí)行命令來創(chuàng)建虛擬機。

# 在 virtual-machine 目錄中執(zhí)行
terraform apply

比如將虛擬機的數(shù)量 vm_count? 設(shè)置為 3,執(zhí)行完上面的命令之后查看資源。

terraform state list

azurerm_linux_virtual_machine.demo[0]
azurerm_linux_virtual_machine.demo[1]
azurerm_linux_virtual_machine.demo[2]
azurerm_network_interface.demo[0]
azurerm_network_interface.demo[1]
azurerm_network_interface.demo[2]
azurerm_public_ip.demo[0]
azurerm_public_ip.demo[1]
azurerm_public_ip.demo[2]

通過命令 terraform show 可以查看資源的詳細(xì)信息,比如公網(wǎng)的 IP 地址等等。

參考資料

[1] Terraform: https://developer.hashicorp.com/terraform/intro

[2] Terraform CLI: https://developer.hashicorp.com/terraform/downloads

[3] Azure CLI: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli

[4] Azure Provider: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs

[5] 5 種認(rèn)證方式: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs#authenticating-to-azure

[6] Azure CLI 的方式: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/azure_cli

責(zé)任編輯:武曉燕 來源: 云原生指北
相關(guān)推薦

2019-12-26 15:45:23

FedoraLinuxCockpit

2017-02-25 14:55:33

虛擬機Azure資源

2022-04-08 18:05:59

微軟Arm

2011-05-12 11:29:26

Oracle VM V虛擬機

2010-02-24 16:37:27

Ubuntu VMwa

2013-01-18 14:04:58

VMwareWorkstation

2019-08-01 08:00:04

AWS虛擬機Lightsail

2023-06-28 15:53:25

虛擬機Linux

2009-09-16 10:30:16

創(chuàng)建高可用虛擬機

2011-05-05 09:32:59

CentOS 5.6KVM

2012-05-18 10:22:23

2014-11-07 10:16:25

反惡意軟件微軟Azure虛擬機

2013-02-21 09:39:42

微軟虛擬化開放

2010-07-26 09:02:38

2022-10-27 12:11:42

VirtualBoxLinux虛擬機

2010-01-14 14:21:05

CentOS系統(tǒng)

2013-07-17 09:32:58

2022-07-13 09:17:42

Azure虛擬機加密貨幣云資源

2012-12-25 10:47:50

IBMdW

2013-03-06 14:41:07

vSphere Web
點贊
收藏

51CTO技術(shù)棧公眾號