PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

PowerShell Desired State Configuration (DSC) simplifica assai u travagliu di implementà è cunfigurà u sistema operatore, i roli di u servitore è l'applicazioni quandu avete centinaie di servitori.

Ma quandu si usa DSC in u locu, i.e. micca in MS Azure, ci sò un paru di sfumature. Sò soprattuttu notevuli se l'urganizazione hè grande (da 300 stazioni di travagliu è servitori) è ùn hà micca scupertu ancu u mondu di cuntenituri:

  • Ùn ci sò micca rapporti cumpleti nantu à u statutu di i sistemi. Se a cunfigurazione necessaria ùn hè micca stata applicata à certi servitori, allora senza sti rapporti ùn sapemu micca. Hè abbastanza difficiuli di ottene infurmazioni da u servitore di rapportu integratu, è per un gran numaru d'ospiti pò ancu piglià assai tempu.
  • Manca scalabilità è tolleranza à i difetti. Hè impussibile di custruisce una splutazioni di servitori web DSC pull chì averebbe una sola basa di dati tolerante à i difetti è un almacenamentu cumunu di schedari mof per cunfigurazioni, moduli è chjave di registrazione.

Oghje vi dicu cumu pudete risolve u primu prublema è uttene dati per rapportà. Tuttu saria più simplice se SQL puderia esse usatu cum'è una basa di dati. MS prumesse supportu integratu solu in Windows Server 2019 o in custruisce u servitore Windows 1803. Fate ancu e dati cù u fornitore OleDB. ùn funziunerà miccaperchè DSC Server usa un paràmetru chjamatu chì ùn hè micca cumplettamente supportatu da OleDbCommand.

Aghju trovu stu metudu: per quelli chì utilizanu Windows Server 2012 è 2016, pudete istituisce utilizendu una basa di dati SQL cum'è backend per u servitore di query DSC. Per fà questu, avemu da creà un "proxy" in a forma di un schedariu .mdb cù tavule assuciati, chì redirectà i dati ricevuti da i rapporti di u cliente à a basa di dati di u servitore SQL.

Nota: Per Windows Server 2016 duvete aduprà AccessDatabaseEngine 2016x86perchè Microsoft.Jet.OLEDB.4.0 ùn hè più supportatu.

Ùn andaraghju in dettagliu nantu à u prucessu di implementà un servitore di pull DSC, hè assai ben descrittu ccà. Aghju da nutà solu un paru di punti. Se implementemu u puller DSC in u stessu servitore web cù WSUS o Kaspersky Security Center, allora in u script di creazione di cunfigurazione avemu bisognu di cambià i seguenti parametri:

  1. UseSecurityBestPractices     = $false

    Altrimenti, TLS 1.0 serà disattivatu è ùn puderete micca cunnette à a basa di dati SQL. Kaspersky Security Center ùn funziona ancu micca (u prublema deve esse risolta in Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Se ùn fate micca sta mudificazione, ùn puderà micca eseguisce u servitore AppPool DSC in IIS cù WSUS.

  3. Quandu si stallanu DSC Server cù WSUS, disattivà a cache statica è dinamica per u situ DSC.

Passemu à cunfigurà u servitore DSC per utilizà a basa di dati SQL.

Creazione di una basa di dati SQL

  1. Creemu una basa di dati SQL vacante chjamata DSC.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  2. Creemu un contu per cunnette à sta basa di dati. Prima, verificate chì u servitore SQL permette l'autentificazione di i cunti Windows è SQL.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  3. Andà à a sezione Mappa di l'Usuariu. Sceglite a basa di dati, in questu casu DSC. Demu i diritti di u pruprietariu di a basa di dati.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  4. Fattu.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

Creazione di un Schema per a basa di dati DSC

Ci hè duie manere di creà un schema per una basa di dati DSC:

  • indipindentamente, attraversu 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
  • impurtà dati da devices.mdb vacanti cum'è parte di u modulu PS PSDesiredStateConfiguration attraversu l'Assistente di Importazione di Dati SQL.

    U Devices.mdb avemu da travaglià cù si trova in C: WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Per impurtà dati, eseguite u SQL Server Import and Export Wizard.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  2. Scegliemu induve avemu da ottene e dati - in u nostru casu hè una basa di dati Microsoft Access. Cliccate Next.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  3. Selezziunate u schedariu da quale avemu impurtatu u schema.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  4. Indichemu induve impurtà - per noi hè una basa di dati SQL.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  5. Selezziunate u servitore SQL (Server Name) è a basa di dati in quale impurtaremu dati (DataBase).

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  6. Selezziunate l'opzione Copia dati da una o più tavule o viste (copiendu dati da tavule o viste).

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  7. Selezziunà e tavule da quale impurtaremu u schema di basa di dati.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  8. Verificate a casella di spunta Run Immediately è cliccate Finish.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  9. Fattu.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  10. In u risultatu, i tavulini duveranu apparisce in a basa di dati DSC.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

Stallà un schedariu .mdb "proxy".

Crea una cunnessione ODBC à un servitore SQL. Hè presumitu chì MS Access ùn hè micca stallatu nantu à u servitore chì esegue DSC, cusì a creazione di databases.mdb hè fatta nantu à un host intermediariu cù MS Access installatu.

Creemu un sistema di cunnessione ODBC à u servitore SQL (u bitness di cunnessione deve currisponde à u bitness MS Access - 64 o 32). Pò esse creatu usendu:
- Cmdlet 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 manualmente, utilizendu l'assistente di cunnessione:

  1. Apertura Strumenti amministrativi. Selezziemu fonti di dati ODBC secondu a versione di MS Access installata. Andà à a tabulazione System DSN è crea una cunnessione di u sistema (Add).

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  2. Indichemu chì avemu da cunnette à u servitore SQL. Cliccate Finish.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  3. Specificate u nome è u servitore per cunnette. Allora una cunnessione cù i stessi paràmetri deve esse creatu nantu à u servitore DSC.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  4. Indicà chì per cunnette à u servitore SQL, usemu un login creatu prima cù u nome DSC.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  5. Specificemu a basa di dati in i paràmetri di cunnessione DSC.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  6. Cliccate Finish.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  7. Prima di compie a stallazione, verificamu chì a cunnessione hè travagliatu (Test Data Source).

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  8. Fattu.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

Crià una basa di dati devices.mdb in MS Access. Lanciate MS Access è crea una basa di dati viota chjamata devices.mdb.

PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  1. Andà à a tabulazione Dati esterni è cliccate nantu à a basa di dati ODBC. In a finestra chì appare, selezziunate Crea una tavola ligata per cunnette à a fonte di dati.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  2. In a nova finestra, selezziunate a tabulazione Machine Data Source è cliccate OK. In a nova finestra, inserite e credenziali per cunnette à u servitore SQL.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  3. Selezziunate e tavule chì deve esse ligate. Verificate a casella Salvà password è cliccate OK. Salvà a password ogni volta per e trè tavule.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  4. In l'indici avete bisognu di selezziunà i seguenti:
    - TargetName per a tavola dbo_Devices;

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

    - NodeName o IPAddress per dbo_RegistrationData;

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

    - NodeName o IPAddress per dbo_StatusReport.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  5. Rinumatemu e tavule in MS Access, vale à dì: sguassate u prefissu dbo_ per chì DSC pò usà.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  6. Fattu.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  7. Salvà u schedariu è chjude MS Access. Avà copiamu i devices.mdb resultanti à u servitore DSC (per difettu in C: Program FilesWindowsPowershellDSCService) è rimpiazzà l'esistente cun ellu (se esiste).

Configurazione di u Servitore DSC per Utilizà SQL

  1. Riturnemu à u servitore DSC. Per cunnette à u servitore SQL cù u nostru schedariu proxy, creamu una nova cunnessione ODBC in u servitore DSC. U nome, a prufundità di bit, è i paràmetri di cunnessione deve esse listessi chì quandu creanu u schedariu MDB. Pudete copià i devices.mdb vioti digià cunfigurati da quì.
  2. Per utilizà devices.mdb, avete bisognu di fà cambiamenti à u web.config di u servitore di pull DSC (predeterminatu hè C:inetpubPSDSCPullServerweb.config):

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

Questu cumpleta a cunfigurazione di u servitore DSC.

Verificate a funziunalità di u servitore DSC

  1. Cuntrollamu chì u servitore DSC hè accessibile attraversu un navigatore web.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  2. Avà verificate se u servitore di pull DSC funziona bè. Per fà questu, u modulu xPSDesiredStateConfiguration include l'script pullservetuptests.ps1. Prima di eseguisce stu script, duvete installà un modulu Powershell chjamatu Pester. Installa Install-Module -Name Pester.
  3. Apertura C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (in a versione di esempiu 8.0.0.0.0).

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  4. Apertura PullServerSetupTests.ps1 è verificate a strada à u web.config di u servitore DSC. U percorsu per web.config, chì verificarà u script, hè evidenziatu in rossu. Se necessariu, cambiamu sta strada.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

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

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

  6. In SQL Management Studio vedemu chì l'ospiti amministrati mandanu rapporti à u servitore di rapportu DSC è i dati finiscinu in a basa di dati DSC in u servitore SQL.

    PowerShell Desired State Configuration and file: part 1. Configurazione di DSC Pull Server per travaglià cù una basa di dati SQL

Eccu tuttu. In l'articuli seguenti, aghju pensatu à dicu cumu custruisce rapporti nantu à e dati ottenuti, è tocca à i prublemi nantu à a tolleranza di difetti è a scalabilità.

Source: www.habr.com

Add a comment