หลังจากที่เราได้ทำการ 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 |
จากนั้นให้เปิด Browser ไปยัง URL https://aka.ms/devicelogin และทำการป้อนรหัสให้ตรงกับที่ Azure CLI แจ้งไว้ จากนั้นคลิก Continue และทำการ Sign-in เข้าสู่ Azure Portal
จากนั้น Azure CLI จะกลับสู่ Prompt ของ Linux และแสดงรายละเอียดของ subscription ต่างๆ ให้ทราบ
2. ทำการสร้าง Resource Group
เพื่อจะเก็บทรัพยากรต่างๆ ที่จำเป็นในการทำงานเข้าไว้ด้วยกัน โดยมีพารามิเตอร์ที่สำคัญคือ
พารามิเตอร์ |
คำอธิบาย |
-name | ชื่อของ Reource Group ที่ต้องการ |
-location | เลือก Datacenter ของ Azure ที่ต้องการ ซึ่ง southeastasia จะใกล้กับประเทศไทยที่สุด |
ตัวอย่างการใช้งาน
az group create –name ExampleGroup –location “southeastasia” |
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 นั้นเครื่องหมาย \ หมายถึงการขึ้นบรรทัดใหม่ ของคำสั่งที่มีความยาวมากๆ เพื่อความสะดวกในการอ่าน ซึ่งจะทำให้เปรียบเสมือนคำสั่งต่างๆ ดังกล่าวนั้นอยู่ในบรรทัดเดียวกัน
ซึ่งจากรูปจะเห็นได้ว่า Parameters File ของเรามีการกรอกข้อมูลไม่ครบ นั่นคือ AdminPassword นั้นเองครับ
เมื่อแก้ไขข้อผิดลาดเสร็จแล้วทำการ Validate อีกครั้งจะพบว่า Succeded ดังรูป
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 |
ให้สังเกตว่าตอนสุดท้ายของ 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 ครับ