日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用Terraform創(chuàng)建Azure虛擬機(jī)

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

作者:張曉輝 2023-03-03 08:10:15

云計(jì)算

虛擬化 在 Azure 上創(chuàng)建虛擬機(jī),我也從一開始的 Web 頁(yè)面專項(xiàng) CLI,再到現(xiàn)在因?yàn)樾枰獜?fù)雜配置時(shí)的 Terraform。這篇文章就分享下如何使用 Terraform 配置 Azure 虛擬機(jī)的創(chuàng)建。

創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。10年品質(zhì),值得信賴!

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

在 Azure 上創(chuàng)建虛擬機(jī),我也從一開始的 Web 頁(yè)面專項(xiàng) CLI,再到現(xiàn)在因?yàn)樾枰獜?fù)雜配置時(shí)的 Terraform。這篇文章就分享下如何使用 Terraform 配置 Azure 虛擬機(jī)的創(chuàng)建。

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

前置條件

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

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

認(rèn)證

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

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í)行命令后會(huì)自動(dòng)跳轉(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@cdxwcx.com",
"type": "user"
}
}

如果有多個(gè)訂閱,需要設(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 上的所有資源都是在某個(gè)資源組下創(chuàng)建的,在創(chuàng)建虛擬機(jī)之前需要先創(chuàng)資源組,或使用已有的資源組。在創(chuàng)建資源組的同時(shí),也會(huì)創(chuàng)建虛擬網(wǎng)絡(luò)和子網(wǎng)。
  • virtual-machine:顧名思義,創(chuàng)建虛擬機(jī)資源。

創(chuàng)建資源組

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

terraform init

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

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

terraform init

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

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

terraform validate

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

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

比如將虛擬機(jī)的數(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


當(dāng)前文章:使用Terraform創(chuàng)建Azure虛擬機(jī)
文章路徑:http://www.dlmjj.cn/article/djcsegd.html