Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

La configuració de l'estat desitjat (DSC) de PowerShell simplifica molt la tasca de desplegar i configurar el sistema operatiu, les funcions del servidor i les aplicacions quan teniu centenars de servidors.

Però quan s'utilitza DSC a les instal·lacions, és a dir. no a MS Azure, hi ha un parell de matisos. Es noten especialment si l'organització és gran (a partir de 300 estacions de treball i servidors) i encara no ha descobert el món dels contenidors:

  • No hi ha informes complets sobre l'estat dels sistemes. Si no s'ha aplicat la configuració requerida en alguns servidors, sense aquests informes no en sabrem. És bastant difícil obtenir informació del servidor d'informes integrat, i per a un gran nombre d'amfitrions també pot trigar molt de temps.
  • Manca escalabilitat i tolerància a errors. És impossible construir una granja de servidors web d'extracció DSC que tinguessin una única base de dades tolerant a errors i un emmagatzematge comú de fitxers mof per a configuracions, mòduls i claus de registre.

Avui us explicaré com podeu resoldre el primer problema i obtenir dades per informar. Tot seria més senzill si SQL es pogués utilitzar com a base de dades. SENYORA promeses suport integrat només a Windows Server 2019 o a la compilació de Windows Server 1803. Obteniu dades amb el proveïdor OleDB també no funcionaràperquè el servidor DSC utilitza un paràmetre amb nom que no és totalment compatible amb OleDbCommand.

He trobat aquest mètode: per a aquells que utilitzen Windows Server 2012 i 2016, podeu fer-ho настроить utilitzant una base de dades SQL com a backend per al servidor de consultes DSC. Per fer-ho, crearem un "proxy" en forma d'arxiu .mdb amb taules associades, que redirigeix ​​les dades rebudes dels informes del client a la base de dades del servidor SQL.

Nota: per a Windows Server 2016, heu d'utilitzar AccessDatabaseEngine2016x86perquè Microsoft.Jet.OLEDB.4.0 ja no és compatible.

No entraré en detalls sobre el procés de desplegament d'un servidor d'extracció DSC, està molt ben descrit aquí. Només anotaré un parell de punts. Si despleguem l'extractor DSC al mateix servidor web amb WSUS o Kaspersky Security Center, a l'script de creació de configuració haurem de canviar els paràmetres següents:

  1. UseSecurityBestPractices     = $false

    En cas contrari, TLS 1.0 es desactivarà i no us podreu connectar a la base de dades SQL. Kaspersky Security Center tampoc no funcionarà (el problema s'ha de resoldre a Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Si no feu aquest canvi, no podreu executar el servidor AppPool DSC a IIS amb WSUS.

  3. Quan instal·leu el servidor DSC amb WSUS, desactiveu la memòria cau estàtica i dinàmica per al lloc DSC.

Passem a configurar el servidor DSC per utilitzar la base de dades SQL.

Creació d'una base de dades SQL

  1. Creem una base de dades SQL buida anomenada DSC.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  2. Creem un compte per connectar-nos a aquesta base de dades. En primer lloc, comproveu que el servidor SQL permet l'autenticació dels comptes de Windows i SQL.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  3. Aneu a la secció Mapes d'usuaris. Seleccioneu la base de dades, en aquest cas DSC. Donem els drets del propietari de la base de dades.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  4. Fet.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

Creació d'un esquema per a la base de dades DSC

Hi ha dues maneres de crear un esquema per a una base de dades DSC:

  • independentment, mitjançant un script 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
  • importeu dades des de devices.mdb buits com a part del mòdul PS PSDesiredStateConfiguration mitjançant l'assistent d'importació de dades SQL.

    El Devices.mdb amb el qual treballarem es troba a C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Per importar dades, executeu l'assistent d'importació i exportació de SQL Server.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  2. Triem d'on obtindrem les dades, en el nostre cas és una base de dades de Microsoft Access. Feu clic a Següent.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  3. Seleccioneu el fitxer des del qual importem el diagrama.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  4. Indiquem on importar - per a nosaltres és una base de dades SQL.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  5. Seleccioneu el servidor SQL (Nom del servidor) i la base de dades a la qual importarem les dades (Base de dades).

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  6. Seleccioneu l'opció Copia dades d'una o més taules o vistes.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  7. Seleccionem les taules des de les quals importarem l'esquema de la base de dades.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  8. Marqueu la casella de selecció Executar immediatament i feu clic a Finalitza.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  9. Fet.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  10. Com a resultat, les taules haurien d'aparèixer a la base de dades DSC.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

Configuració d'un fitxer "proxy" .mdb

Creació d'una connexió ODBC a un servidor SQL. Se suposa que MS Access no està instal·lat al servidor que executa DSC, de manera que la configuració de databases.mdb es fa en un host intermedi amb MS Access instal·lat.

Creem una connexió ODBC del sistema al servidor SQL (el bit de connexió ha de coincidir amb el bit de MS Access - 64 o 32). Es pot crear utilitzant:
- Cmdlet de Powershell:

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

— o manualment, mitjançant l'assistent de connexió:

  1. Obriu Eines administratives. Seleccionem les fonts de dades ODBC en funció de la versió de MS Access instal·lada. Aneu a la pestanya DSN del sistema i creeu una connexió del sistema (Afegeix).

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  2. Indiquem que ens connectarem al servidor SQL. Feu clic a Finalitzar.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  3. Especifiqueu el nom i el servidor al qual connecteu-vos. Aleshores caldrà crear una connexió amb els mateixos paràmetres al servidor DSC.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  4. Indiquem que per connectar-nos al servidor SQL, utilitzem un login creat prèviament amb el nom DSC.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  5. Especifiquem la base de dades a la configuració de connexió DSC.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  6. Feu clic a Finalitzar.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  7. Abans de completar la configuració, comprovem que la connexió funciona (font de dades de prova).

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  8. Fet.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

Creació d'una base de dades devices.mdb a MS Access. Inicieu MS Access i creeu una base de dades buida anomenada devices.mdb.

Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  1. Aneu a la pestanya Dades externes i feu clic a Base de dades ODBC. A la finestra que apareix, seleccioneu Crea una taula enllaçada per connectar-vos a la font de dades.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  2. A la nova finestra, seleccioneu la pestanya Font de dades de la màquina i feu clic a D'acord. A la nova finestra, introduïu les credencials per connectar-vos al servidor SQL.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  3. Seleccioneu les taules que cal enllaçar. Marqueu la casella Desa la contrasenya i feu clic a D'acord. Deseu la contrasenya cada vegada per a les tres taules.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  4. Als índexs heu de seleccionar el següent:
    — TargetName per a la taula dbo_Devices;

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

    — NodeName o IPAddress per a dbo_RegistrationData;

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

    — NodeName o IPAddress per a dbo_StatusReport.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  5. Canviem el nom de les taules a MS Access, és a dir: elimineu el prefix dbo_ perquè DSC les pugui utilitzar.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  6. Fet.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  7. Deseu el fitxer i tanqueu MS Access. Ara copiem el dispositius.mdb resultant al servidor DSC (per defecte a C: Program FilesWindowsPowershellDSCService) i substituïm l'existent per ell (si existeix).

Configuració del servidor DSC per utilitzar SQL

  1. Tornem al servidor DSC. Per connectar-nos al servidor SQL amb el nostre fitxer proxy, creem una nova connexió ODBC al servidor DSC. El nom, la profunditat de bits i la configuració de connexió han de ser els mateixos que quan es crea el fitxer MDB. Podeu copiar els dispositius.mdb buits ja configurats des d'aquí.
  2. Per utilitzar devices.mdb, heu de fer canvis al web.config del servidor d'extracció de DSC (el valor predeterminat és C:inetpubPSDSCPullServerweb.config):

- per a 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;">

- per a 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;">

Això completa la configuració del servidor DSC.

Comprovació de la funcionalitat del servidor DSC

  1. Comprovem que el servidor DSC sigui accessible mitjançant un navegador web.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  2. Ara comprovem si el servidor d'extracció DSC funciona correctament. Per fer-ho, el mòdul xPSDesiredStateConfiguration inclou l'script pullserversetuptests.ps1. Abans d'executar aquest script, heu d'instal·lar un mòdul Powershell anomenat Pester. Instal·leu-lo Mòdul d'instal·lació -Nom Pester.
  3. Obriu C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (a la versió d'exemple 8.0.0.0.0).

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  4. Obriu PullServerSetupTests.ps1 i comproveu el camí al web.config del servidor DSC. El camí a web.config, que comprovarà l'script, està ressaltat en vermell. Si cal, canviem aquest camí.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  5. Executeu pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

  6. A SQL Management Studio veiem que els hosts administrats envien informes al servidor d'informes DSC i les dades acaben a la base de dades DSC del servidor SQL.

    Fitxer i configuració de l'estat desitjat de PowerShell: part 1. Configuració del servidor DSC Pull per treballar amb una base de dades SQL

Això és tot. En els articles següents tinc la intenció d'explicar-vos com crear informes sobre les dades obtingudes i parlaré de qüestions sobre la tolerància a errors i l'escalabilitat.

Font: www.habr.com

Afegeix comentari