DSC được tích hợp trong PowerShell 4.0 và là một phần của Windows Management Framework. PowerShell DSC có sẵn trên Windows 2012 R2 và cũng có thể tải và cài đặt trên Windows 2008 R2 và Windows 2012.
DSC là khái niệm khai báo. Script DSC không chứa 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ể.
Hãy tưởng tượng bạn vừa sở hữu một căn hộ mới, với tường, cửa ra vào và cửa sổ. Bạn không cần phải quan tâm đến việc xây tường hay đặt cửa sổ, bởi vì công việc đó thuộc về người xây dựng. Bạn chỉ cần mô tả căn hộ theo ý muốn của mình, và người xây dựng sẽ dựa vào đó để xây dựng cho bạn.
DSC hoạt động theo cách tương tự. Đặc tả được chứa trong cấu hình và DSC runtime hoạt động như một người xây dựng, đảm bảo rằng 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à một công cụ khá mới. Các công cụ quản lý cấu hình khác như Chef và Puppet đã xuất hiện trên thị trường từ nhiều năm trước và chúng quản lý cả hệ thống Windows và các hệ thống không phải Windows. Tuy nhiên, việc sử dụng chúng đòi hỏi người dùng phải học thêm ngôn ngữ mới. 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 kịch bản chứa định nghĩa về các loại dịch vụ trong cấu trúc của bạn (như IIS, cơ sở dữ liệu, máy chủ file) và sử dụng chúng cho mọi triển khai mới. Đảm bảo rằng tất cả máy chủ đều có cấu hình giống nhau.
- Tăng tốc Deployment: Áp dụng nhanh chóng và dễ 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 giúp xác định cấu hình máy chủ đang chạy dựa trên kịch bản và có thể báo cáo hoặc tự động khắc phục sai sót.
- Đơn giản: DSC được phát triển dựa trên PowerShell, người dùng có thể điều chỉnh DSC qua PowerShell. Mặc dù script không chứa logic và khả năng xử lý lỗi, chúng dễ đọc.
- Idempotency: Bạn có thể áp dụng cùng một cấu hình DSC mà không gặp vấn đề gì. Nếu cấu hình được cập nhật, chỉ có những thiết lập khác biệt mới thay đổi.
Các thành phần của DSC
- WinRM (Windows Remote Management): Microsoft sử dụng giao thức WS-Management làm chuẩn để quản lý máy chủ thông qua 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 quản lý (như lưu trữ, mạng, thành phần phần mềm). WMI được triển khai từ CIM trên hệ điều hành Windows.
- 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 có nhiều tài nguyên tích hợp sẵn như File và Windows Feature, hoặc người dùng cũng có thể tạo 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 áp dụng cấu hình DSC. Nó trả về giá trị True / False dựa trên sự chính xác của nguồn. Nếu True, DSC runtime sẽ không thực hiện thêm thao tác nào.
- Set-TargetResource: Được gọi khi Test-TargetResource trả về giá trị False. Chịu trách nhiệm đảm bảo rằng tài nguyên được cài đặt theo đặc tả 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 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 sau đây xác định thư mục có tên DSC_Demo phải tồn tại trong C:\temp.
Khi script PowerShell thực thi, file MOF có tên localhost.mof sẽ được tạo bởi DSC runtime trong thư mục CreateFolderDemo. Nếu mở file lên, bạn sẽ thấy nó có dạng như sau:
Để thực hiện 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
Trước khi chạy script, thư mục không tồn tại, do đó hàm Test-TargetResource sẽ trả về giá trị False. Sau đó, hàm Set-TargetResource sẽ được gọi để tạo thư mục.
Để minh họa tính chất idempotency, nếu script chạy lần thứ 2, hàm Test-TargetResource sẽ trả về giá trị True và không có cấu hình nào được thực hiện nữa.
Triển khai SQL Server qua PowerShell DSC
Nếu sử dụng module xSqlPs PowerShell, bạn có thể triển khai SQL Server qua PowerShell DSC
Bắt đầu bằng việc tải module và giải nén nó vào thư mục $env:ProgramFiles\WindowsPowerShell\.
Tải về module xSqlPs PowerShell và giải nén tại đây: Download xSqlPs PowerShell (chèn link)
Mở PowerShell và kiểm tra các module có sẵn bằng cách chạy lệnh Get-DSCResource:
Sau đó, tạo cấu hình. Trong ví dụ này, cài đặt một thể hiện SQL 2014 có tên DSCInstance trên máy tính cục bộ:
Khi thực thi script, sẽ tạo ra tệp 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ẽ thực hiện cài đặt SQL Server và tạo cơ sở dữ liệu mới có tên DSCInstance.
Tương tự như FileDemo ở trên, nếu thử chạy Start-DscConfiguration lần thứ hai, quá trình sẽ cố gắng hoàn tất mà không gặp lỗi:
Lưu ý: Module xSqlServerResource được thiết kế cho SQL 2012 và các phiên bản khác có thể báo lỗi cài đặt ngay cả khi đã hoàn tất. Điều này xuất phát từ tìm kiếm file log SQL Setup trong thư mục 110, trong khi các phiên bản SQL Server khác lưu file log ở vị trí khác.
Cách khắc phục nhanh chóng là chỉnh sửa 'C:\Program Files\WindowsPowerShell\Modules\xSqlPs\DSCResources\MSFT_xSqlServerInstall\MSFT_xSqlServerInstall.psm1' và thay đổi đường dẫn trên dòng 154 thành một trong những đường dẫn 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ụ hỗ trợ quản lý và triển khai máy chủ một cách hiệu quả trong tương lai. Tuy nhiên, hiện tại DSC vẫn đang trong giai đoạn mới và chỉ hỗ trợ các thao tác cơ bản. Module SQL Server không cung cấp nhiều tính năng dòng lệnh như trong SQL Setup.
Trên Mytour vừa hướng dẫn cách triển khai SQL Server thông qua PowerShell DSC. Bạn cũng có thể sử dụng DSC để triển khai Service Packs hoặc Cumulative Updates cho một SQL Server cụ thể. Khi có bản vá mới, DBA chỉ cần cập nhật một số file cấu hình và triển khai lại, tài nguyên SQL Server sẽ phát hiện và cài đặt chỉ bản vá cần thiết thay vì toàn bộ triển khai lại.
Trước khi thực hiện bất kỳ thay đổi quan trọng nào trên SQL Server, hãy tham khảo hướng dẫn sao lưu và khôi phục SQL Server để đảm bảo an toàn dữ liệu.
Mytour 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, hãy tham khảo để thao tác dễ dàng.
