PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

Το PowerShell Desired State Configuration (DSC) απλοποιεί σημαντικά τη δουλειά ανάπτυξης και διαμόρφωσης του λειτουργικού συστήματος, των ρόλων διακομιστή και των εφαρμογών όταν έχετε εκατοντάδες διακομιστές.

Αλλά όταν χρησιμοποιείτε DSC εντός εγκατάστασης, π.χ. Όχι στο MS Azure, υπάρχουν μερικές αποχρώσεις. Είναι ιδιαίτερα αισθητά εάν ο οργανισμός είναι μεγάλος (από 300 σταθμούς εργασίας και διακομιστές) και δεν έχει ανακαλύψει ακόμη τον κόσμο των κοντέινερ:

  • Δεν υπάρχουν πλήρεις αναφορές για την κατάσταση των συστημάτων. Εάν δεν έχει εφαρμοστεί η απαιτούμενη ρύθμιση παραμέτρων σε ορισμένους διακομιστές, τότε χωρίς αυτές τις αναφορές δεν θα το γνωρίζουμε. Είναι αρκετά δύσκολο να λάβετε πληροφορίες από τον ενσωματωμένο διακομιστή αναφορών και για μεγάλο αριθμό κεντρικών υπολογιστών μπορεί επίσης να χρειαστεί πολύς χρόνος.
  • Δεν έχει επεκτασιμότητα και ανοχή σφαλμάτων. Είναι αδύνατο να δημιουργηθεί μια φάρμα διακομιστών ιστού DSC pull που θα έχουν μια ενιαία βάση δεδομένων με ανοχή σε σφάλματα και μια κοινή αποθήκευση αρχείων mof για διαμορφώσεις, λειτουργικές μονάδες και κλειδιά εγγραφής.

Σήμερα θα σας πω πώς μπορείτε να λύσετε το πρώτο πρόβλημα και να λάβετε δεδομένα για αναφορά. Όλα θα ήταν πιο απλά εάν η SQL μπορούσε να χρησιμοποιηθεί ως βάση δεδομένων. Κυρία υποσχέσεις ενσωματωμένη υποστήριξη μόνο στον Windows Server 2019 ή στον build Windows server 1803. Λήψη δεδομένων χρησιμοποιώντας επίσης τον πάροχο OleDB δεν θα λειτουργήσειεπειδή ο διακομιστής DSC χρησιμοποιεί μια ονομασμένη παράμετρο που δεν υποστηρίζεται πλήρως από το OleDbCommand.

Βρήκα αυτήν τη μέθοδο: για όσους χρησιμοποιούν Windows Server 2012 και 2016, μπορείτε ρυθμίσετε χρησιμοποιώντας μια βάση δεδομένων SQL ως backend για τον διακομιστή ερωτημάτων DSC. Για να το κάνουμε αυτό, θα δημιουργήσουμε ένα "proxy" με τη μορφή ενός αρχείου .mdb με συσχετισμένους πίνακες, το οποίο θα ανακατευθύνει τα δεδομένα που λαμβάνονται από τις αναφορές πελατών στη βάση δεδομένων του διακομιστή SQL.

Σημείωση: Για Windows Server 2016 πρέπει να χρησιμοποιήσετε AccessDatabaseEngine2016x86επειδή το Microsoft.Jet.OLEDB.4.0 δεν υποστηρίζεται πλέον.

Δεν θα μπω σε λεπτομέρειες σχετικά με τη διαδικασία ανάπτυξης ενός διακομιστή έλξης DSC, περιγράφεται πολύ καλά εδώ. Θα σημειώσω μόνο μερικά σημεία. Εάν αναπτύξουμε το πρόγραμμα εξαγωγής DSC στον ίδιο διακομιστή ιστού με το WSUS ή το Kaspersky Security Center, τότε στο σενάριο δημιουργίας διαμόρφωσης πρέπει να αλλάξουμε τις ακόλουθες παραμέτρους:

  1. UseSecurityBestPractices     = $false

    Διαφορετικά, το TLS 1.0 θα απενεργοποιηθεί και δεν θα μπορείτε να συνδεθείτε στη βάση δεδομένων SQL. Το Kaspersky Security Center δεν θα λειτουργήσει επίσης (το πρόβλημα θα πρέπει να επιλυθεί στο Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Εάν δεν κάνετε αυτήν την αλλαγή, δεν θα μπορείτε να εκτελέσετε τον διακομιστή AppPool DSC σε υπηρεσίες IIS με WSUS.

  3. Κατά την εγκατάσταση του διακομιστή DSC με το WSUS, απενεργοποιήστε τη στατική και δυναμική προσωρινή αποθήκευση για την τοποθεσία DSC.

Ας προχωρήσουμε στη ρύθμιση του διακομιστή DSC για χρήση της βάσης δεδομένων SQL.

Δημιουργία βάσης δεδομένων SQL

  1. Ας δημιουργήσουμε μια κενή βάση δεδομένων SQL με το όνομα DSC.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  2. Ας δημιουργήσουμε έναν λογαριασμό για να συνδεθείτε σε αυτήν τη βάση δεδομένων. Αρχικά, ελέγξτε ότι ο διακομιστής SQL επιτρέπει τον έλεγχο ταυτότητας τόσο των λογαριασμών Windows όσο και των λογαριασμών SQL.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  3. Μεταβείτε στην ενότητα Χαρτογράφηση χρήστη. Επιλέξτε τη βάση δεδομένων, σε αυτήν την περίπτωση DSC. Δίνουμε τα δικαιώματα του κατόχου της βάσης δεδομένων.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  4. Τέλος.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

Δημιουργία σχήματος για τη βάση δεδομένων DSC

Υπάρχουν δύο τρόποι για να δημιουργήσετε ένα σχήμα για μια βάση δεδομένων DSC:

  • ανεξάρτητα, μέσω ενός σεναρίου TSQL
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Devices](
    [TargetName] [nvarchar](255) NOT NULL,
    [ConfigurationID] [nvarchar](255) NOT NULL,
    [ServerCheckSum] [nvarchar](255) NOT NULL,
    [TargetCheckSum] [nvarchar](255) NOT NULL,
    [NodeCompliant] [bit] NOT NULL,
    [LastComplianceTime] [datetime] NULL,
    [LastHeartbeatTime] [datetime] NULL,
    [Dirty] [bit] NOT NULL,
    [StatusCode] [int] NULL
    ) ON [PRIMARY]
    GO
     
    CREATE TABLE [dbo].[RegistrationData](
    [AgentId] [nvarchar](255) NOT NULL,
    [LCMVersion] [nvarchar](255) NULL,
    [NodeName] [nvarchar](255) NULL,
    [IPAddress] [nvarchar](255) NULL,
    [ConfigurationNames] [nvarchar](max) NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
     
    CREATE TABLE [dbo].[StatusReport](
    [JobId] [nvarchar](50) NOT NULL,
    [Id] [nvarchar](50) NOT NULL,
    [OperationType] [nvarchar](255) NULL,
    [RefreshMode] [nvarchar](255) NULL,
    [Status] [nvarchar](255) NULL,
    [LCMVersion] [nvarchar](50) NULL,
    [ReportFormatVersion] [nvarchar](255) NULL,
    [ConfigurationVersion] [nvarchar](255) NULL,
    [NodeName] [nvarchar](255) NULL,
    [IPAddress] [nvarchar](255) NULL,
    [StartTime] [datetime] NULL,
    [EndTime] [datetime] NULL,
    [Errors] [nvarchar](max) NULL,
    [StatusData] [nvarchar](max) NULL,
    [RebootRequested] [nvarchar](255) NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
  • εισαγωγή δεδομένων από κενές συσκευές.mdb ως μέρος της μονάδας PS PSDesiredStateConfiguration μέσω του SQL Data Import Wizard.

    Το Devices.mdb με το οποίο θα εργαστούμε βρίσκεται στο C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Για να εισαγάγετε δεδομένα, εκτελέστε τον Οδηγό εισαγωγής και εξαγωγής του SQL Server.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  2. Επιλέγουμε από πού θα λάβουμε τα δεδομένα - στην περίπτωσή μας πρόκειται για βάση δεδομένων της Microsoft Access. Κάντε κλικ στο Επόμενο.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  3. Επιλέξτε το αρχείο από το οποίο εισάγουμε το διάγραμμα.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  4. Υποδεικνύουμε πού να εισάγουμε - για εμάς είναι μια βάση δεδομένων SQL.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  5. Επιλέξτε τον διακομιστή SQL (Όνομα διακομιστή) και τη βάση δεδομένων στην οποία θα εισάγουμε δεδομένα (Βάση δεδομένων).

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  6. Επιλέξτε Αντιγραφή δεδομένων από έναν ή περισσότερους πίνακες ή προβολές (αντιγραφή δεδομένων από πίνακες ή προβολές).

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  7. Επιλέγουμε τους πίνακες από τους οποίους θα εισάγουμε το σχήμα της βάσης δεδομένων.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  8. Επιλέξτε το πλαίσιο ελέγχου Εκτέλεση Αμέσως και κάντε κλικ στο Τέλος.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  9. Τέλος.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  10. Ως αποτέλεσμα, οι πίνακες θα πρέπει να εμφανίζονται στη βάση δεδομένων DSC.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

Ρύθμιση αρχείου "proxy" .mdb

Δημιουργία σύνδεσης ODBC σε διακομιστή SQL. Υποτίθεται ότι η MS Access δεν είναι εγκατεστημένη στον διακομιστή που εκτελεί το DSC, επομένως η ρύθμιση του databases.mdb γίνεται σε έναν ενδιάμεσο κεντρικό υπολογιστή με εγκατεστημένη την MS Access.

Ας δημιουργήσουμε μια σύνδεση ODBC συστήματος στον διακομιστή SQL (το bit σύνδεσης πρέπει να ταιριάζει με το bit MS Access - 64 ή 32). Μπορεί να δημιουργηθεί χρησιμοποιώντας:
- Powershell cmdlet:

Add-OdbcDsn –Name DSC –DriverName 'SQL Server' –Platform '<64-bit or 32-bit>' –DsnType System –SetPropertyValue @('Description=DSC Pull Server',"Server=<Name of your SQL Server>",'Trusted_Connection=yes','Database=DSC') –PassThru

— ή χειροκίνητα, χρησιμοποιώντας τον οδηγό σύνδεσης:

  1. Ανοίξτε τα εργαλεία διαχείρισης. Επιλέγουμε πηγές δεδομένων ODBC ανάλογα με την έκδοση του εγκατεστημένου MS Access. Μεταβείτε στην καρτέλα System DSN και δημιουργήστε μια σύνδεση συστήματος (Προσθήκη).

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  2. Δηλώνουμε ότι θα συνδεθούμε στον διακομιστή SQL. Κάντε κλικ στο Τέλος.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  3. Καθορίστε το όνομα και τον διακομιστή στον οποίο θα συνδεθείτε. Στη συνέχεια, θα πρέπει να δημιουργηθεί μια σύνδεση με τις ίδιες παραμέτρους στον διακομιστή DSC.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  4. Υποδεικνύουμε ότι για να συνδεθούμε με τον διακομιστή SQL, χρησιμοποιούμε μια σύνδεση που δημιουργήθηκε προηγουμένως με το όνομα DSC.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  5. Καθορίζουμε τη βάση δεδομένων στις ρυθμίσεις σύνδεσης DSC.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  6. Κάντε κλικ στο Finish.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  7. Πριν ολοκληρώσουμε τη ρύθμιση, ελέγχουμε ότι η σύνδεση λειτουργεί (Test Data Source).

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  8. Τέλος.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

Δημιουργία βάσης δεδομένων devices.mdb στο MS Access. Εκκινήστε το MS Access και δημιουργήστε μια κενή βάση δεδομένων που ονομάζεται devices.mdb.

PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  1. Μεταβείτε στην καρτέλα Εξωτερικά δεδομένα και κάντε κλικ στη Βάση δεδομένων ODBC. Στο παράθυρο που εμφανίζεται, επιλέξτε Δημιουργία συνδεδεμένου πίνακα για να συνδεθείτε με την πηγή δεδομένων.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  2. Στο νέο παράθυρο, επιλέξτε την καρτέλα Προέλευση δεδομένων μηχανήματος και κάντε κλικ στο OK. Στο νέο παράθυρο, εισαγάγετε τα διαπιστευτήρια για να συνδεθείτε στον διακομιστή SQL.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  3. Επιλέξτε τους πίνακες που πρέπει να συνδεθούν. Επιλέξτε το πλαίσιο Αποθήκευση κωδικού πρόσβασης και κάντε κλικ στο OK. Αποθηκεύστε τον κωδικό πρόσβασης κάθε φορά και για τους τρεις πίνακες.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  4. Στα ευρετήρια πρέπει να επιλέξετε τα εξής:
    — TargetName για τον πίνακα dbo_Devices.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

    — NodeName ή διεύθυνση IP για dbo_RegistrationData.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

    — NodeName ή διεύθυνση IP για dbo_StatusReport.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  5. Ας μετονομάσουμε τους πίνακες στο MS Access, δηλαδή: αφαιρέστε το πρόθεμα dbo_ για να μπορεί να τους χρησιμοποιήσει το DSC.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  6. Τέλος.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  7. Αποθηκεύστε το αρχείο και κλείστε το MS Access. Τώρα αντιγράφουμε το devices.mdb που προκύπτει στον διακομιστή DSC (από προεπιλογή στο C: Program FilesWindowsPowershellDSCService) και αντικαθιστούμε το υπάρχον με αυτόν (αν υπάρχει).

Διαμόρφωση διακομιστή DSC για χρήση SQL

  1. Επιστρέφουμε στον διακομιστή DSC. Για να συνδεθείτε στον διακομιστή SQL με το αρχείο μας μεσολάβησης, ας δημιουργήσουμε μια νέα σύνδεση ODBC στον διακομιστή DSC. Το όνομα, το βάθος bit και οι ρυθμίσεις σύνδεσης πρέπει να είναι ίδιες με αυτές κατά τη δημιουργία του αρχείου MDB. Μπορείτε να αντιγράψετε τις ήδη διαμορφωμένες κενές συσκευές.mdb από εδώ.
  2. Για να χρησιμοποιήσετε το devices.mdb, πρέπει να κάνετε αλλαγές στο web.config του διακομιστή έλξης DSC (η προεπιλογή είναι C:inetpubPSDSCPullServerweb.config):

- για Windows Server 2012

<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">

- για Windows Server 2016

<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">

Αυτό ολοκληρώνει τη ρύθμιση του διακομιστή DSC.

Έλεγχος της λειτουργικότητας του διακομιστή DSC

  1. Ας ελέγξουμε ότι ο διακομιστής DSC είναι προσβάσιμος μέσω ενός προγράμματος περιήγησης ιστού.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  2. Τώρα ας ελέγξουμε αν ο διακομιστής έλξης DSC λειτουργεί σωστά. Για να γίνει αυτό, η λειτουργική μονάδα xPSDesiredStateConfiguration περιλαμβάνει τη δέσμη ενεργειών pullserversetuptests.ps1. Πριν εκτελέσετε αυτό το σενάριο, πρέπει να εγκαταστήσετε μια λειτουργική μονάδα Powershell με το όνομα Pester. Εγκαταστήστε το Install-Module -Name Pester.
  3. Ανοίξτε το C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<έκδοση μονάδας>DSCPullServerSetupPullServerDeploymentVerificationTest (στο παράδειγμα έκδοσης 8.0.0.0.0).

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  4. Ανοίξτε το PullServerSetupTests.ps1 και ελέγξτε τη διαδρομή προς το web.config του διακομιστή DSC. Η διαδρομή προς το web.config, η οποία θα ελέγξει το σενάριο, επισημαίνεται με κόκκινο χρώμα. Αν χρειαστεί, αλλάζουμε αυτό το μονοπάτι.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  5. Εκτελέστε το pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Όλοι εργάζονται.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

  6. Στο SQL Management Studio βλέπουμε ότι οι διαχειριζόμενοι κεντρικοί υπολογιστές στέλνουν αναφορές στον διακομιστή αναφορών DSC και τα δεδομένα καταλήγουν στη βάση δεδομένων DSC στον διακομιστή SQL.

    PowerShell Desired State Configuration and file: part 1. Ρύθμιση παραμέτρων DSC Pull Server ώστε να λειτουργεί με βάση δεδομένων SQL

Αυτό είναι όλο. Στα επόμενα άρθρα σκοπεύω να σας πω πώς να δημιουργείτε αναφορές για τα δεδομένα που λαμβάνονται και θα θίξω ζητήματα σχετικά με την ανοχή σφαλμάτων και την επεκτασιμότητα.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο