Cách triển khai SQL Server thông qua PowerShell DSC

DSC được tích hợp trong PowerShell 4.0 và là một phần của Windows Management Framework. PowerShell DSC được tích hợp trong Windows 2012 R2, nhưng có sẵn cho người dùng Windows 2008 R2 và Windows 2012 tải về và cài đặt.

DSC là khai báo. Script DSC không có logic về cách thực hiện cài đặt hoặc gỡ bỏ cài đặt cụ thể. Thay vào đó nó xác định các thiết lập máy chủ hoặc ứng dụng cụ thể.

Thử tưởng tượng bạn vừa mua được căn hộ mới, có tường, cửa ra vào và cửa sổ. Bạn không cần phải lo lắng về tường hay vị trí cửa sổ, vì đó là công việc của người xây. Tất cả những gì bạn cần làm là mô tả căn hộ mà bạn mong muốn, và người xây sẽ dựa vào đó để xây dựng cho bạn.

DSC cũng hoạt động theo cách tương tự như thế. Đặc tả được chứa trong cấu hình và DSC runtime hoạt động như trình xây dựng, đảm bảo các tài nguyên trên máy chủ được thiết lập theo ý muốn của người dùng.

DSC là công cụ tương đối mới. Các công cụ quản lý cấu hình khác như Chef và Puppet đã có mặt trên thị trường trong nhiều năm qua, và các công cụ này quản lý cả cả hệ thống Windows và hệ thống không phải Windows. Tuy nhiên việc sử dụng các công cụ này đòi hỏi người dùng phải học thêm ngôn ngữ khác. Script DSC sử dụng các tiện ích mở rộng mới cho PowerShell.

Ưu điểm của DSC

- Chuẩn hóa: Tạo các script chứa các định nghĩa về các loại dịch vụ khác nhau trong cấu trúc của bạn (chẳng hạn IIS, cơ sở dữ liệu, máy chủ file) sau đó sử dụng cho tất cả các triển khai mới. Bạn có thể chắc chắn một điều tất cả các máy chủ sẽ được thiết lập giống hệt nhau.

- Tăng tốc Deployment: Nhanh chóng và dễ dàng áp dụng cấu hình DSC cho máy chủ thông qua PowerShell runtime.

- Phát hiện cấu hình: DSC cung cấp giải pháp để xác định cấu hình máy chủ đang hoạt động đã được chỉ định trong các script và có thể báo cáo hoặc tự động sửa chữa các sai lệch.

- Đơn giản: DSC được phát triển dựa trên PowerShell, vì vậy người dùng có thể tinh chỉnh DSC thông qua PowerShell. Tuy nhiên các script không có logic, khả năng xử lý lỗi nhưng dễ đọc.

- Idempotency: Bạn có thể áp dụng cùng một cấu hình DSC mà không có vấn đề gì xảy ra. Và nếu cấu hình được cập nhật, chỉ có các thiết lập khác nhau thay đổi.

Các thành phần của DSC

- WinRM (Windows Remote Management): các triển khai của Microsoft về giao thức WS-Management chuẩn để quản lý các máy chủ sử dụng SOAP.

- CIM (Common Information Model): chuẩn để mô tả cấu trúc và hành vi của các tài nguyên được quản lý (như lưu trữ, mạng, các thành phần phần mềm). WMI được triển khai từ CIM trên Windows.

- Các file MOF (Managed Object Format): Chứa cấu hình được áp dụng cho node đích.

- Tài nguyên: Là các khối xây dựng cho cấu hình DSC. DSC bao gồm một số tài nguyên được tích hợp sẵn, chẳng hạn như File và Windows Feature, hoặc ngoài ra người dùng cũng có thể tạo các tài nguyên riêng.

Hàm của tài nguyên DSC

Mỗi tài nguyên DSC bao gồm 3 hàm

- Test-TargetResource: Đây là hàm đầu tiên được gọi khi cấu hình DSC được áp dụng. Nó trả về giá trị True / False dựa trên nguồn có chính xác hay không. Nếu đúng thì DSC runtime không phải thực hiện các thao tác khác.

- Set-TargetResource: Được gọi khi Test-TargetResource trả về giá trị False. Chịu trách nhiệm đảm bảo tài nguyên được thiết lập theo các đặc tả được lưu trữ trong cấu hình.

- Get-TargetResource: Trả về tất cả các thuộc tính của tài nguyên. Không được sử dụng trong bước cấu hình nhưng được sử dụng để báo cáo.

Cấu hình DSC

Cấu hình dưới đây xác định thư mục có tên DSC_Demo tồn tại trong C:\temp.

Khi script PowerShell trên được thực thi, file MOF có tên localhost.mof được tạo ra bởi DSC runtime trong thư mục CreateFolderDemo. Nếu mở file lên, bạn sẽ thấy file có dạng như dưới đây:

Để áp dụng cấu hình -and và "make it so", chúng ta sử dụng lệnh Start-DscConfiguration:

Start-DscConfiguration -Path .\CreateFolderDemo -Wait -Verbose

Thư mục không tồn tại trước khi script được chạy, vì vậy hàm Test-TargetResource sẽ trả về giá trị False. Tiếp theo hàm Set-TargetResource sẽ được gọi và thư mục sẽ được tạo.

Để hiển thị idempotency, nếu script chạy trong lần thứ 2 thì Test-TargetResource sẽ trả về giá trị True và không có cấu hình nào diễn ra nữa.

Triển khai SQL Server thông qua PowerShell DSC

Nếu sử dụng module xSqlPs PowerShell, bạn có thể thực hiện triển khai SQL Server thông qua PowerShell DSC

Đầu tiên tải module về và giải nén trong thư mục $env:ProgramFiles\WindowsPowerShell\.

Tải module xSqlPs PowerShell về máy và giải nén tại đây : Download xSqlPs PowerShell (chèn link)

Mở PowerShell và xác minh các module đã có bằng cách chạy lệnh Get-DSCResource:

Tiếp theo tạo cấu hình. Trong ví dụ này là cài đặt một cá thể SQL 2014 có tên gọi là DSCInstance vào máy tính cục bộ:

Khi chạy script sẽ tạo ra file localhost.mof trong thư mục InstallSQLDemo:

Triển khai cấu hình bằng lệnh:

Start-DscConfiguration -Path .\InstallSqlDemo -Wait -Verbose

Lệnh trên sẽ chạy cài đặt SQL Server tạo ra cơ sở dữ liệu DSCInstance mới.

Cũng giống như FileDemo ở trên, nếu cố gắng chạy Start-DscConfiguration lần thứ 2, nó sẽ cố gắng hoàn tất và không có lỗi nào xảy ra:

Lưu ý: xSqlServerResource được thiết kế cho SQL 2012 và các phiên bản khác sẽ báo cáo lỗi cài đặt thất bại ngay cả khi người dùng đã cài đặt xong. Điều này là do tài nguyên tìm file log SQL Setup trong thư mục 110, nhưng các phiên bản SQL Server lưu trữ file log ở vị trí khác.

Cách sửa lỗi nhanh nhất là chỉnh sửa "C:\Program Files\WindowsPowerShell\Modules\xSqlPs\DSCResources\MSFT_xSqlServerInstall\MSFT_xSqlServerInstall.psm1" và thay đổi thư mục trên dòng 154 thành một trong những dòng liên quan đến phiên bản SQL của bạn (100 cho phiên bản Server 2008 và 120 cho phiên bản 2014).

DSC là công cụ tuyệt vời trong việc hỗ trợ quản lý và triển khai các máy chủ dễ dàng hơn trong tương lai. Tuy nhiên tại thời điểm này DSC còn rất mới, và chỉ hỗ trợ các thao tác cơ bản. Module SQL Server không hiển thị nhiều tiện ích dòng lệnh có sẵn trong SQL Setup.

Như vậy bài viết trên Taimienphi.vn vừa hướng dẫn cho bạn cách triển khai SQL Server thông qua PowerShell DSC. Ngoài ra bạn còn có thể sử dụng DSC để triển khai Service Packs hoặc Cumulative Updates tới một cá thể SQL Server. Và sau đó nếu Service Pack mới được phát hành, DBA sẽ cập nhật một số file cấu hình và triển khai lại, và tài nguyên SQL Server sẽ phát hiện chỉ có một bản vá cần được cài đặt chứ không phải toàn bộ triển khai.

Trước khi thực hiện bất cứ thay đổi nào quan trọng trên SQL Server, để phòng tránh những rủi ro thì bạn nên tham khảo bài viết hướng dẫn sao lưu và khôi phục SQL Server qua đó nắm được cách phục hồi dữ liệu SQL Server nhé.

Taimienphi.vn cũng đã hướng dẫn cách cài đặt sql server 2019 chi tiết trong bài viết cách cài đặt sql server 2019, nếu bạn đang có nhu cầu cài đặt thì cùng tham khảo để thao thác dễ dàng. 

Hôm nay, Taimienphi.vn sẽ hướng dẫn các bạn cách triển khai SQL Server thông qua PowerShell DSC giúp bạn có thể sử dụng tính năng PowerShell mới quan lý cơ sở hạ tầng trong cơ sở, trên dịch vụ đám mây hiệu quả, dễ dàng.
Cách tạo kiểu thông báo bong bóng (Balloon) sử dụng PowerShell
Khái niệm PowerShell? Cách sử dụng PowerShell hiệu quả trên máy tính
Sự khác nhau giữa Command Prompt và Windows PowerShell
VIEW trong SQL
Cách tạo SSIS Catalog bằng PowerShell
Quản lý FTP / SFTP / SSH bằng PowerShell trên Windows 10

ĐỌC NHIỀU