Azure Resource Manager The Series : ตอนที่ 5– การ Deploy Azure Template ผ่าน Azure CLI 2.0

0
173

หลังจากที่เราได้ทำการ download Azure Template จากแหล่งต่างๆ มาเรียบร้อยแล้วนั้น เราก็พร้อมที่จะทำการ Deploy Azure Template เหล่านั้น ไปยัง Microsoft Azure ซึ่งแบ่งวิธีการ Deploy ได้ 3 รูปแบบด้วยกันคือ

1. Deploy ผ่านทาง Azure CLI 2.0

2. Deploy ผ่านทาง Azure Power Shell

3. Deploy ผ่านทาง Azure Quick Start Template

เอาล่ะครับ ในตอนนี้จะพาไปดูวิธีการ Deploy Azure Template ผ่านทาง Azure CLI 2.0 กันก่อนนะครับ ส่วนวิธีการอื่นๆ จะไว้ทยอยลองให้นะครับ

สิ่งที่ต้องเตรียมก่อนการ Deploy Azure Template

ดังที่ได้กล่าวแล้วว่า Azure Template นั้นจะทำงานผ่านทางแฟ้มข้อมูลที่เป็น .JSON จำนวน 2 แฟ้มข้อมูล นั่นคือ Template File และ Parameter File ดังนั้นเราจึงต้องเตรียมทั้ง 2 แฟ้มข้อมูลนี้เสียก่อน โดย

1. Template File  ผู้ใช้งานจะต้องตรวจสอบความถูกต้องเสียก่อน ว่ามีการทำงานตรงกับความต้องการในการ Deployment นั้นๆ ในตัวอย่างชื่อว่า deploy-vm.json

2. Parameter File ผู้ใช้งานจะต้องกรอกข้อมูลต่างๆ ที่จำเป็นในการ Deployment ให้ครบถ้วน ในตัวอย่างเป็น file ชื่อว่า deploy-vm-parameters.json

ซึ่งทั้ง 2 file นั้นสามารถ download ได้จาก Link ใน One Drive นะครับ  (File ในตอนที่ 4 มีข้อผิดพลาดนิดหน่อยตรงที่มันกำหนดชื่อ Resource Group ไว้ตายตัวครับ เอาไป deploy ใน Resource Group ชื่ออื่นจะไม่ผ่าน)

Download ตัวอย่าง Azure Template ในการ deploy

หมายหตุ ก่อน deploy ให้แก้ชื่อ Resource Group ใน deploy-vm-parameters.json ก่อนนะครับ

ซึ่งในตัวอย่างนี้เราจะทำการ Deploy Azure VM ขึ้นมา 1 VM นะครับ โดยมี Parameter ต่างๆ ที่กำหนดไว้ใน Parameter File ดังนี้ครับ

Parameter Name

Value

General
location southeastasia
resourceGroupName ExampleGroup
Virtual Network
virtualNetworkName Example-vnet
addressPrefix 172.16.0.0/16
virtualNetworkSubnetName Server
subnetPrefix 172.16.1.0/24
Storage Account
storageAccountName psaexample
storageAccountType Premium_LRS
diagnosticsStorageAccountName saexample
diagnosticsStorageAccountType Standard_LRS
diagnosticsStorageAccountId Microsoft.Storage/storageAccounts/saexample
Virtual Machine
virtualMachineName Example-VM01
virtualMachineSize Standard_DS3_v2
adminUsername vmadmin
adminPassword Pa$$w0rd
networkInterfaceName example-vm01-nic
networkSecurityGroupName example-VM01-nsg
publicIpAddressName Example-VM01-ip
publicIpAddressType Dynamic

การ Deploy Azure Template ผ่านทาง Azure CLI 2.0

หลังจากที่เตรียมแฟ้มข้อมูล JSON ทั้ง 2 แฟ้มไว้พร้อมแล้ว เราก็สามารถที่จะนำไป Deploy โดยใช้ Azure CLI 2.0 ได้เลยครับ ซึ่งมีการทำงานดังต่อไปนี้

1. การ Login เข้าสู่ Micrsoft Azure ใช้คำสั่ง

az login

01

จากนั้นให้เปิด Browser ไปยัง URL https://aka.ms/devicelogin และทำการป้อนรหัสให้ตรงกับที่ Azure CLI แจ้งไว้ จากนั้นคลิก Continue และทำการ Sign-in เข้าสู่ Azure Portal

02

จากนั้น Azure CLI จะกลับสู่ Prompt ของ Linux และแสดงรายละเอียดของ subscription ต่างๆ ให้ทราบ

2. ทำการสร้าง Resource Group

เพื่อจะเก็บทรัพยากรต่างๆ ที่จำเป็นในการทำงานเข้าไว้ด้วยกัน  โดยมีพารามิเตอร์ที่สำคัญคือ

พารามิเตอร์

คำอธิบาย

-name ชื่อของ Reource Group ที่ต้องการ
-location เลือก Datacenter ของ Azure ที่ต้องการ ซึ่ง southeastasia จะใกล้กับประเทศไทยที่สุด

ตัวอย่างการใช้งาน

az group create –name ExampleGroup –location “southeastasia”

03

3.  ทำการ Validate Azure Template ซึ่งมีพารามิเตอร์ที่สำคัญดังนี้

พารามิเตอร์

คำอธิบาย

–name ชื่อของ Deployment ที่ต้องการ
–resource-group ชื่อของ Reource Group ที่ต้องการให้ติดตั้ง Resource ต่างๆ ไว้
–template-file ชื่อของ Template File
–Parameters ชื่อของ Parameter File นำหน้าด้วยเครื่องหมาย @

 

ตัวอย่างการใช้งาน

az group deployment validate \
–resource-group ExampleGroup \
–template-file deploy-vm.json \
–parameters @deploy-vm-parameters.json

หมายเหตุ: ในระบบปฏิบัติการ Linux นั้นเครื่องหมาย \ หมายถึงการขึ้นบรรทัดใหม่ ของคำสั่งที่มีความยาวมากๆ เพื่อความสะดวกในการอ่าน ซึ่งจะทำให้เปรียบเสมือนคำสั่งต่างๆ ดังกล่าวนั้นอยู่ในบรรทัดเดียวกัน

04

ซึ่งจากรูปจะเห็นได้ว่า Parameters File ของเรามีการกรอกข้อมูลไม่ครบ  นั่นคือ AdminPassword นั้นเองครับ

เมื่อแก้ไขข้อผิดลาดเสร็จแล้วทำการ Validate อีกครั้งจะพบว่า Succeded ดังรูป

05

4.  ทำการ Deploy Azure Template ไปยัง Resource Group ที่ต้องการ ซึ่งคำสั่งที่ใช้งานพารามิเตอร์ที่สำคัญคือ

พารามิเตอร์

คำอธิบาย

–name ชื่อของ Deployment ที่ต้องการ
–resource-group ชื่อของ Reource Group ที่ต้องการให้ติดตั้ง Resource ต่างๆ ไว้
–template-file ชื่อของ Template File
–Parameters ชื่อของ Parameter File นำหน้าด้วยเครื่องหมาย @

ตัวอย่างการใช้งาน

 az group deployment create \
–name ExampleDeployment \
–resource-group ExampleGroup \
–template-file deploy-vm.json \
–parameters @deploy-vm-parameters.json

06

ให้สังเกตว่าตอนสุดท้ายของ Output จากการ deploy (ยาวมากๆๆๆ) จะเป็น “Succeeded” ซึ่งหลังจาก Deploy เสร็จแล้วเราจะเห็น resource ต่างๆ ขึ้นใน Resource Group ใน Azure Portal

 

เอาล่ะครับ ในตอนนี้ก็น่าจะพอจะมองเห็นภาพรวมของการทำงานของ Azure Resource Manager แล้วว่าการ deploy resource โดยใช้ ARM Template จะช่วยอำนวยความสะดวกให้ผู้ใช้งานได้เป็นอย่างมาก โดยเฉพาะหากต้องการมี deploy ซ้ำๆ ก็สามารถแก้ Parameter File แล้วทำการ deploy ใหม่ได้ทันทีครับ

 

สำหรับในตอนต่อไปจะได้กล่าวถึงวิธีการ deploy ผ่าน Power Shell และ Quick Start Template ครับ