การใช้ Nano Server ใน Azure – สำหรับคนที่เคยใช้ PowerShell ครั้งแรก

Nano Server คืออะไร?

Nano Server คือ Windows Server เวอร์ชั่นปรับโครงสร้างให้มีขนาดเล็ก สามารถติดตั้งและจัดการได้ด้วยการรีโมทย์ Nano Server ออกแบบมาให้เหมาะกับระบบคลาวด์และการทำงาน DevOps
ภาพรวมระบบจะใช้ทรัพยากรน้อยก อัพเดตน้อยและรีสตาร์ทเร็ว

วิธีสร้าง Nano Server ใน Azure

สร้าง Resource เลือกเป็น Windows Server เลือก Windows Server 2016 – Nano Server หลังจากสร้างเราจะได้

  • IP (สามารถสร้าง dns เพื่อใช้งานได้)
  • Username
  • Password

Nano Server คือ Windows Server ที่ไม่มี UI

การใช้งาน Nano Server จะใช้ Windows Remote Management หรือ WinRM ซึ่งต้องตั้งค่า Inboud security rules ให้รองรับการทำงานดังนี้

Name Source Destination Service Action
allow-http Any Any HTTP (TCP/80) Allow
allow-winrm Any Any WinRM (TCP/5985-5986) Allow

ใน azure การสร้าง Nano Server เริ่มแรกจะมีการตั้งค่า Inbound security rules ให้เปิด Service RDP ไว้ แต่การเชื่อมต่อในทีนี้จะไม่ใช้ RDP ดังนั้นให้ลบ RDP ออกได้เลย

เริ่มต้นใช้งาน Nano Server ด้วย PowerShell

Nano Server นั้นจะไม่รองรับการทำงานแบบโลคอลเซสชั่น ซึ่งการใช้งานต้องเขาถึงโดยการรีโมทย์เพียงอย่างเดียว

การใช้งานเริ่มด้วยด้วยการเปิด PowerShell (Run as Administrator) จากนั้นต้องบอกเครื่องที่เราใช้ให้รู้ว่า Nano Server นั้นเชื่อถือได้ ตามนี้

$ip = "192.168.0.100"   # อย่าลืมเปลี่ยน IP
Set-Item WSMan:\Localhost\Client\TrustedHosts $ip

จะได้ผลดังนี้

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> $ip = "192.168.0.100"
PS C:\WINDOWS\system32> Set-Item WSMan:\Localhost\Client\TrustedHosts $ip

WinRM Security Configuration.
This command modifies the TrustedHosts list for the WinRM client. The computers in the TrustedHosts list might not be
authenticated. The client might send credential information to these computers. Are you sure that you want to modify
this list?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): yes
PS C:\WINDOWS\system32>

สำหรับคนที่อยากดูสรุปคำสั่งทั้งหมดให้เลื่อนไปดูข้างล่างได้

การจะตรวจสอบว่าเราตั้งค่าถูกต้องไหม ให้พิมพ์

Get-Item WSMan:\Localhost\Client\TrustedHosts

ซึ่งจะได้ผลดังนี้

PS C:\WINDOWS\system32> Get-Item WSMan:\Localhost\Client\TrustedHosts


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   TrustedHosts                                   192.168.0.100


PS C:\WINDOWS\system32>

สร้างข้อมูลล็อกอิน

$cred = Get-Credential

หลังจากพิมพ์จะมีหน้าต่างขึ้นมาให้ระบุ Username และ Password ให้ระบุตามที่ได้เมื่อตอนสร้างใน Azure ซึ่งเมื่อระบุเสร็จะได้ผลดังนี้

PS C:\WINDOWS\system32> $cred = Get-Credential

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
PS C:\WINDOWS\system32>

เริ่มต้นเซสชั่น

$session = New-PSSession -ComputerName $ip -Credential $cred

ถ้าไม่มีอะไรผิดพลาดจะขึ้นดังนี้

PS C:\WINDOWS\system32> $session = New-PSSession -ComputerName $ip -Credential $cred
PS C:\WINDOWS\system32>

เข้าใช้งานเซลชั่น

Enter-PSSession -Session $session

จะได้ผลดังนี้

PS C:\WINDOWS\system32> Enter-PSSession -Session $session
[192.168.0.100]: PS C:\Users\NanoServer\Documents>

เท่านี้เราก็จะใช้งาน PowerShell ใน Nano Server ได้สำเร็จ ซึ่งหากต้องการปิดเซสชั่น ก็สามารถทำได้ด้วยคำสั่ง

Exit-PSSession

ซึ่งจะได้ผลลัพธ์ตามนี้

[192.168.0.100]: PS C:\Users\TestNano\Documents> Exit-PSSession
PS C:\WINDOWS\system32>

สรุปคำสั่งที่ใช้ทั้งหมด มีดังนี้

$ip = "192.168.0.100"                                           # ตั้งค่า IP
Set-Item WSMan:\Localhost\Client\TrustedHosts $ip               # บอกเครื่องว่า IP นี้เชื่อถือได้
$cred = Get-Credential                                          # สร้างตัวตน
$session = New-PSSession -ComputerName $ip -Credential $cred    # สร้างเซสชั่น
Enter-PSSession -Session $session                               # รีโมทย์
Exit-PSSession                                                  # ออกจากรีโมทย์

ที่มา

Leave a Reply

Your email address will not be published. Required fields are marked *