Mở và Tắt Máy Ảo Trên Azure với Flow

Cách đây vài tuần tôi có tạo một máy ảo trên Azure và với tính hay quên nên thường xuyên để máy ảo chạy không trên Azure. Như các bạn biết để một máy ảo chạy 24/7 trên Azure thì hơi lãng phí và với tui tiền eo hẹp thì chỉ cần vài tuần là máy ảo sẽ ngốn hết số tiền nhỏ bé trong tài khoản.

Vậy vấn đề đặt ra là làm sao có thể tắt máy ảo khi chúng ta quên? Và làm sao có thể mở máy ảo một cách nhanh nhất khi chúng ta cần? Bởi vì mỗi khi muốn mở hay tắt máy ảo trên Azure chúng ta phải qua một vài thủ tục như đăng nhập, đi đến khu quản lý máy ảo, tìm máy ảo chúng ta muốn tao tác va rồi mới có thể tắt hay mở nó.

Với vấn đề trên, tôi đã nghĩ ngay tới dùng Microsoft Flow để tắt mở máy tính và bên dưới là từng bước cài đặt mong được chia sẻ với các bạn.

1. Tạo máy ảo trên Azure

Vì tôi muốn có một máy ảo chạy Visual Studio trên Azue nhằm backup cho laptop cá nhân phòng trường hợp trái gió trở trời nó bị cảm sốt không thèm làm việc thì tôi có thể remote vào Azure VM để tiếp tục công việc.

Sau khi Login to Azure portal và chọn Virtual machines, click add button sau đó tìm kiếm và tạo một cái máy ảo mà các bạn cần ở đay tôi chọn “Visual Studio Enterprise 2017 on Windows 10 Enterprise N (x64)”

Và tạo một cái máy ảo tên Steven-PC trong Resource Group VMs. Trong khi chờ đợi Azure provision cái VM tôi tiến hành bước kế tiếp.

Các bạn có thể tìm hiểu cách tạo máy ảo ở bài dưới

2. Cài đặt Automation Account và Runbook

Như các bạn biết trong Azure ung cấp cho chúng ta một feature rất hay để tự động hóa một số tác vụ tên là Runbook. Các bạn có thể tìm hiểu thêm ở đây.

Để chạy được Runbook cân phải có một Automation account. Tôi tạo một Automation account với tên là HbdAutoAccount.

Sau khi account được tạo, đi vào phần Runbooks Gallery của account tìm kiếm và import 2 runbook tên Start Azure V2 VMs và Stop Azure V2 VMs với tên lần lượ là Start-Steven-PC  Stop-Steven-PC.

Sau bước này tôi sẽ có 2 runbook trong phần Runbooks của account.

Lần lược đi vào từng Runbook click Edit sau đó click Publish vì sau khi add runbooks từ Gallery, Azure sẽ không cho phép chạy một Runbook mà chưa được Publish. Bước này nhằm đảm bảo là các Runbook trước khi chạy đã được verify cẩn thận.

Kế đến đi vào phần Webhooks của Runbook và tạo 1 webhook với thông tin như sau:

  • Name: Start Steven PC
  • Enabled: Yes
  • Expires: là một năm so với thời điểm hiện tại.
  • URL:
  • Parameters:
    • Resource Group Name: VMs, đây chính là resource group của máy ảo vừa tạo bên trên.
    • VM Name: Steven-PC, đay là tên của máy ảo vừa tạo bên trên.

Và tương tự cho Stop-Steven-PC. Sau khi hoàn thành 2 Webhooks cho 2 Runbooks tôi sẽ có 2 URLs như bên dưới. Những URLs này sẽ được dùng cho phần bên dưới.

  • Start Steven PC: https://s3events.azure-automation.net/webhooks?token=q5F3KX1nRol1vjgkIz61NRLj6T%2fxNCQOeC4jDunBQaA%3d
  • Stop Steven PC: https://s3events.azure-automation.net/webhooks?token=q5F3KX1nRol1vjgkIz61NRLj6T%2fxNCQOeC4jDunBQaA%3d

Tạo Start và Stop buttons trên Microsoft Flow.

Đăng nhập vào Microsoft Flow ở đây, (nếu chưa có account các bạn có thẻ tạo cho mình một account mới). Sau khi đăng nhập thành công, vào phần My Flow và click Create From Blank và chọn Flow button for Mobile và action là HTTP với thông tin như sau:

  • Flow name: Start Steven-PC
  • Http method: POST
  • URL: Start Steven PC URL bên trên

Sau đó click Create Flow button. Sau bước này tôi sẽ có một Mobile Button trên Flow để start VM. Làm tương tự cho Stop button.

Download Microsoft Flow cho iPhone và tôi có thể Start và Stop VM trên Azure trực tiếp trên điện thoại.

Ngoài ra VM machine trên Azure còn có thêm một tính năng khá hay đó là Auto Shutdown với tính năng này sẽ giúp hẹn giờ tắt máy vào một giờ nhất định nào đó.

Ở đây tôi cài đặt là 1 giờ sáng nhằm đảm bảo rằng VM của tôi luôn luôn tắt sau 1am phòng trường hợp tôi quên tắt máy.

  • Với Flow button các bạn có thể bật, tắt nhiều máy ảo cùng một lúc bằng cách add các HTTP liên tiếp nhau.
  • Hiện tại chúng ta open 2 webhooks cho Flow buttons đây là một lỗ hổng Security nên không nên tiết lộ hook URLs cho bất kỳ ai.
  • Khi webhook expired, nên tạo một hook mới và cập nhật URLs lại cho nhừng buttons trên Flow.

Hoàng Bảo Duy

Anh Hoàng Bảo Duy là chuyên gia công nghệ trên nền tảng Microsoft .NET Framework. Anh Duy có hơn 10 năm kinh nghiệm làm việc cho các công ty tập đoàn đa quốc gia. Anh Duy hiện đang công tác tại Singapore cho một tập đoàn tài chính và đầu tư lớn với vai trò System Analyst. Đến với AzureVN.NET, anh Duy mong muốn được chia sẻ nhiều hơn về Azure PaaS.

hbd has 1 posts and counting.See all posts by hbd

Leave a Reply

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