Azure PowerShell 101 EP1: Azure PowerShell Automate Login

0
124

ผมได้ไปนั่งพูดคุยแลกเปลี่ยนความรู้ กับคนที่ใช้งาน Azure ด้วยกัน แล้วมีคำถามเกิดขึ้นมาว่า ต้องการ จะใช้ PowerShell Automate Login อย่างไร ผมเลยเขียนบทความนี้ขึ้นมา แต่แค่ Automate Login อย่างเดียว ยังไม่เห็นประโยชน์มากนัก ผมเลยคิดว่า ให้มันนับจำนวน Web Apps ที่มีอยู่ด้วยเลยดีกว่า เรามาดูกันครับว่า มีวิธีการเขียน Script PowerShell อย่างไร

โดยจะขอแบ่งเป็น 4 ขั้นตอนดังนี้ครับ

1. การ Login
โดยปกติเราจะต้อง Login เข้าสู่ Azure Portal สิ่งที่เราต้องเตรียมเพื่อที่จะ Login เข้าสู่ Azure Portal ก็คือ Username Password โดยเราสามารถ แทนค่าลง $userName และ $Password ได้เลย

################
#Login to Azure#
################
$userName         = 'Your username'
$Password         = 'Your Password'
$SubscriptionName = 'Your Subscription Name'

$securePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force
$cred           = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
Add-AzureRmAccount -Credential $cred

 

เมื่อแทนค่าเรียบร้อยแล้ว ลอง Run ดู เราจะได้ผลลัพธ์ดังนี้

3

ตอนนี้ เราสามารถ Login ได้แล้วครับ

2. การเลือก Subscriptions
โดยทั่วไปแล้ว องค์การที่ใช้งาน Azure มักจะมี Subscriptions มากกว่า 1 Subscriptions เราสามารถเลือกได้ว่า ต้องการที่จะใช้งาน Subscriptions ไหน แต่เดี๋ยวก่อน Subscriptions Name จะหาได้จากที่ไหน

การได้มาซึ่ง Subscriptions name นั้น สามารถหาได้ จาก Get-AzureRmSubscription ดังนี้

1

เมื่อได้ Subscriptions name แล้ว เราก็นำ Subscriptions name มาแทนค่าลงในตัวแปล $SubscriptionName ได้เลย

##########################
#Select AzureSubscription#
##########################
Select-AzureRmSubscription -SubscriptionName $SubscriptionName


3. แสดง Web Apps ที่มีทั้งหมด
เราสามารถแสดง  WebApp ที่เรามีทั้งหมด โดยใช้คำสั่ง Get-AzureRmWebApp โดยจะเก็บผลลัพธ์ที่ได้ ไว้ในตัวแปล $AzureRmWebApp

##################
#Get Azure WebApp#
##################
$AzureRmWebApp = Get-AzureRmWebApp
$WebAppName = $AzureRmWebApp.Name
$WebAppName

 

ผลลัพธ์ที่ได้ เราจะได้ รายชื่อของ Web Apps ทั้งหมดที่มีอยู่ดังนี้

6

4. นับจำนวน Web Apps
เราสามารถที่จะนับจำนวน WebApp ที่จัดเก็บไว้ในตัวแปล $WebAppName ทั้งหมด โดยใช้คำสั่ง $WebAppName.Count

################
#Count web Apps#
################
$WebAppName.Count

8

จาก PowerShell Script ที่ได้อธิบายมานั้น มีความสามารถในการ Auto Login พร้อมทั้งนับจำนวน Web Apps ที่มีทั้งหมด ซึ่งหมายความว่า เราสามารถที่จะต่อยอดไปใช้ในงานต่าง ๆ ที่เราต้องได้ เช่น กำหนดให้ Run Script ผ่านทาง Task Scheduler ตั้งเวลา ในการ Run ให้ทำการ Start/Stop Web Apps หรือ VM ได้ ในช่วงเวลาที่เราต้อง

หวังว่า Script นี้น่าจะมีประโยชน์ไม่มากก็น้อยนะครับ แล้วพบกันในตอนต่อไปนะครับ

ส่วนนี้คือ Script ทั้งหมดที่ได้กล่าวไปนะครับ

################
#Login to Azure#
################
$userName         = 'Your username'
$Password         = 'Your Password'
$SubscriptionName = 'Your Subscription Name'

$securePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force
$cred           = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
Add-AzureRmAccount -Credential $cred

##########################
#Select AzureSubscription#
##########################
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

##################
#Get Azure WebApp#
##################
$AzureRmWebApp = Get-AzureRmWebApp
$WebAppName = $AzureRmWebApp.Name
$WebAppName

################
#Count web Apps#
################
$WebAppName.Count