Có thể tạo tệp cấu hình tổng quát để cài đặt các tính năng của Windows bằng PowerShell không?


8

Tôi hiện đang cố gắng tự động hóa việc xây dựng máy ảo chạy Windows Server 2012 R2. Hiện tại, thách thức là tự động hóa việc bổ sung vai trò và tính năng. Trong các vai trò và trình hướng dẫn tính năng, có một tùy chọn để xuất tệp cấu hình XML có thể chạy trong PowerShell.

Tuy nhiên, sau khi xem qua tệp XML, tôi có thể thấy nó dành riêng cho máy chủ mà nó đang chạy - nó chứa các trường như "Tên máy tính".

Điều gì xảy ra nếu tôi muốn chạy một tập lệnh cài đặt vai trò và tính năng trên nhiều máy ảo? Tôi cần một tệp cấu hình được khái quát hóa, không được cá nhân hóa cho một máy tính cụ thể.

Có ai có một đầu vào về vấn đề này?

Câu trả lời:


12

Có, đối với cả Linux và Windows, bạn có thể tạo các tệp cấu hình trạng thái mong muốn có thể:

  • Kích hoạt hoặc vô hiệu hóa vai trò và tính năng của máy chủ
  • Quản lý cài đặt đăng ký
  • Quản lý tập tin và thư mục
  • Bắt đầu, dừng và quản lý các quy trình và dịch vụ
  • Quản lý nhóm và tài khoản người dùng
  • Triển khai phần mềm mới
  • Quản lý các biến môi trường
  • Chạy các tập lệnh Windows PowerShell
  • Sửa cấu hình bị trôi ra khỏi trạng thái mong muốn
  • Khám phá trạng thái cấu hình thực tế trên một nút cho trước

Đây là một tệp cấu hình mẫu sẽ kích hoạt IIS, đảm bảo rằng các tệp trang web nằm trong thư mục phù hợp và nếu bất kỳ thứ nào trong số này không được cài đặt hoặc thiếu, để cài đặt hoặc sao chép chúng khi thích hợp (lưu ý rằng $ websitefilepath được cho là được xác định trước là nguồn cho các tệp trang web):

    Configuration MyWebConfig
    {
       # A Configuration block can have zero or more Node blocks
       Node "Myservername"
       {
          # Next, specify one or more resource blocks

          # WindowsFeature is one of the built-in resources you can use in a Node block
          # This example ensures the Web Server (IIS) role is installed
          WindowsFeature MyRoleExample
          {
              Ensure = "Present" # To uninstall the role, set Ensure to "Absent"
              Name = "Web-Server"
          }

          # File is a built-in resource you can use to manage files and directories
          # This example ensures files from the source directory are present in the destination directory
          File MyFileExample
          {
             Ensure = "Present"  # You can also set Ensure to "Absent"
             Type = "Directory“ # Default is “File”
             Recurse = $true
             # This is a path that has web files
             SourcePath = $WebsiteFilePath
             # The path where we want to ensure the web files are present
             DestinationPath = "C:\inetpub\wwwroot"
   # This ensures that MyRoleExample completes successfully before this block runs
            DependsOn = "[WindowsFeature]MyRoleExample"
          }
       }
    }

Để biết thêm chi tiết, hãy xem Tổng quan về cấu hình trạng thái mong muốn của Windows PowerShellbắt đầu với cấu hình trạng thái mong muốn của Windows PowerShell .

Vậy tại sao bạn lại sử dụng cái này thay vì chỉ đơn giản là cmdlet install-windowsfeature? Sức mạnh thực sự của việc sử dụng DSC thay vì tập lệnh là tôi có thể xác định vị trí nơi tôi có thể lưu trữ các cấu hình được đẩy đến hoặc kéo từ (đối với máy đích) xem Chế độ cấu hình đẩy và kéo . Cấu hình không quan tâm nếu máy là vật lý hay ảo, nhưng tôi tin rằng phải mất ít nhất năm 2012 để máy chủ khởi động để kéo DSC.


6

Bạn có thể làm tất cả trong PowerShell

Get-WindowsFeature | ? { $_.Installed } | Export-Clixml .\installed.xml

Sao chép xml nơi cần đến, nơi nào đó máy chủ mới có thể truy cập.

Import-Clixml <path to xml>\installed.xml | Install-WindowsFeature

0
Import-Module servermanager
Install-WindowsFeature Feature,
    Feature, 
    Feature, 
    etc

Ở trên sẽ cài đặt một danh sách các tính năng. Bạn có thể mã cứng chúng hoặc chỉ lưu chúng trong một tệp, mỗi dòng trên một dòng và sau đó sử dụng mã này để cài đặt chúng:

Import-Module servermanager
$features = get-content C:\Features.txt
Install-WindowsFeature $features

Đối với máy chủ 2012r2, đó là Install-WindowsFeature
Drind104

Ah. Chúng tôi chủ yếu sử dụng 2008 nên tôi không biết. Cảm ơn đã chỉ ra rằng.
Deadly-Bagel

Khi sử dụng GUI để cài đặt vai trò, có một vài cấu hình bạn cần thực hiện bằng cách sử dụng danh sách thả xuống - chúng được cấu hình như thế nào khi được đặt qua powershell bằng phương thức của bạn? Có phải tất cả đều được đặt mặc định?
Cameron McAuley

Hừm. Trong trường hợp đó, có vẻ như bạn cần sử dụng -configurationfilepaththam số và trỏ nó đến tệp cấu hình đã xuất mà bạn đã đề cập trong OP của mình. Một điều kỳ lạ là nó chứa thông tin cụ thể của PC như bạn đã nói nhưng tất cả các bằng chứng chỉ ra rằng nó sẽ cài đặt nó trên máy tính cục bộ theo mặc định và trỏ nó vào một trong những tệp đó sẽ cấu hình mọi thứ cần thiết để có thể không sử dụng. Nó có thể chỉ là một tài liệu tham khảo cho máy tính mà bạn có cấu hình từ một cái gì đó.
Deadly-Bagel

Nhưng có, nó sẽ sử dụng các tùy chọn mặc định mà không có tập tin.
Deadly-Bagel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.