PowerShell Desired State Configuration (DSC) výrazně zjednodušuje práci s nasazením a konfigurací operačního systému, rolí serveru a aplikací, když máte stovky serverů.
Ale při použití DSC on-premise, tzn. ne v MS Azure, tam je pár nuancí. Jsou zvláště patrné, pokud je organizace velká (od 300 pracovních stanic a serverů) a dosud neobjevila svět kontejnerů:
- Neexistují žádné úplné zprávy o stavu systémů. Pokud na některých serverech nebyla použita požadovaná konfigurace, pak se bez těchto zpráv o tom nedozvíme. Je poměrně obtížné získat informace z vestavěného reportovacího serveru a pro velký počet hostitelů to může také trvat dlouho.
- Chybí škálovatelnost a odolnost proti chybám. Je nemožné vybudovat farmu DSC pull webových serverů, které by měly jedinou databázi odolnou proti chybám a společné úložiště mof souborů pro konfigurace, moduly a registrační klíče.
Dnes vám řeknu, jak můžete vyřešit první problém a získat data pro reportování. Vše by bylo jednodušší, kdyby šlo SQL použít jako databázi. SLEČNA
Našel jsem tuto metodu: pro ty, kteří používají Windows Server 2012 a 2016, můžete
Poznámka: Pro Windows Server 2016 musíte použít
Nebudu se podrobně rozepisovat o procesu nasazení DSC pull serveru, je velmi dobře popsán
-
UseSecurityBestPractices = $false
V opačném případě bude TLS 1.0 zakázáno a nebudete se moci připojit k databázi SQL. Kaspersky Security Center také nebude fungovat (problém by měl být vyřešen v Kaspersky Security Center v11).
-
Enable32BitAppOnWin64 = $true
Pokud tuto změnu neprovedete, nebudete moci spustit server AppPool DSC na IIS se službou WSUS.
- Při instalaci serveru DSC se službou WSUS deaktivujte statické a dynamické ukládání do mezipaměti pro web DSC.
Pojďme k nastavení DSC serveru pro použití SQL databáze.
Vytvoření SQL databáze
- Vytvořme prázdnou SQL databázi s názvem DSC.
- Vytvořme si účet pro připojení k této databázi. Nejprve zkontrolujte, zda SQL server umožňuje ověřování účtů Windows i SQL.
- Přejděte do sekce Mapování uživatelů. Vyberte databázi, v tomto případě DSC. Dáváme práva vlastníka databáze.
- Hotovo.
Vytvoření schématu pro databázi DSC
Existují dva způsoby, jak vytvořit schéma pro databázi DSC:
- nezávisle, prostřednictvím TSQL skriptu
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
- importovat data z prázdných zařízení.mdb jako součást modulu PS PSDesiredStateConfiguration pomocí Průvodce importem dat SQL.
Devices.mdb, se kterou budeme pracovat, se nachází v C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Chcete-li importovat data, spusťte Průvodce importem a exportem serveru SQL Server.
- Zvolíme, odkud data získáme – v našem případě je to databáze Microsoft Access. Klepněte na tlačítko Další.
- Vyberte soubor, ze kterého diagram importujeme.
- Označujeme, kam importovat - pro nás je to SQL databáze.
- Vyberte SQL server (Název serveru) a databázi, do které budeme data importovat (DataBase).
- Vyberte možnost Kopírovat data z jedné nebo více tabulek nebo pohledů (kopírování dat z tabulek nebo pohledů).
- Vybereme tabulky, ze kterých budeme importovat schéma databáze.
- Zaškrtněte políčko Spustit okamžitě a klikněte na Dokončit.
- Hotovo.
- V důsledku toho by se tabulky měly objevit v databázi DSC.
Nastavení „proxy“ souboru .mdb
Vytvoření připojení ODBC k serveru SQL. Předpokládá se, že MS Access není nainstalován na serveru s DSC, takže nastavení databases.mdb se provádí na mezihostiteli s nainstalovaným MS Access.
Vytvořme systémové ODBC spojení s SQL serverem (bitita spojení musí odpovídat bitové bitové hodnotě MS Access - 64 nebo 32). Lze jej vytvořit pomocí:
- 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
— nebo ručně pomocí průvodce připojením:
- Otevřete Nástroje pro správu. Datové zdroje ODBC vybíráme v závislosti na verzi nainstalovaného MS Access. Přejděte na kartu Systémové DSN a vytvořte systémové připojení (Přidat).
- Označujeme, že se připojíme k SQL serveru. Klepněte na tlačítko Dokončit.
- Zadejte název a server, ke kterému se chcete připojit. Poté bude nutné vytvořit spojení se stejnými parametry na serveru DSC.
- Označujeme, že pro připojení k SQL serveru používáme dříve vytvořené přihlášení s názvem DSC.
- Databázi specifikujeme v nastavení připojení DSC.
- Klepněte na tlačítko Dokončit.
- Před dokončením nastavení zkontrolujeme, zda připojení funguje (Test Data Source).
- Hotovo.
Vytvoření databáze devices.mdb v MS Access. Spusťte MS Access a vytvořte prázdnou databázi s názvem devices.mdb.
- Přejděte na kartu Externí data a klikněte na Databáze ODBC. V okně, které se zobrazí, vyberte Vytvořit propojenou tabulku pro připojení ke zdroji dat.
- V novém okně vyberte kartu Machine Data Source a klikněte na OK. V novém okně zadejte přihlašovací údaje pro připojení k serveru SQL.
- Vyberte tabulky, které je třeba propojit. Zaškrtněte políčko Uložit heslo a klepněte na OK. Uložte heslo pro všechny tři tabulky.
- V indexech musíte vybrat následující:
— TargetName pro tabulku dbo_Devices;
— NodeName nebo IPAddress pro dbo_RegistrationData;
— NodeName nebo IPAddress pro dbo_StatusReport. - Přejmenujme tabulky v MS Access, konkrétně: odeberte prefix dbo_, aby je DSC mohl používat.
- Hotovo.
- Uložte soubor a zavřete MS Access. Nyní zkopírujeme výsledný soubor devices.mdb na server DSC (standardně v C: Program FilesWindowsPowershellDSCService) a nahradíme jím stávající (pokud existuje).
Konfigurace serveru DSC pro použití SQL
- Vrátíme se na server DSC. Chcete-li se připojit k serveru SQL pomocí našeho proxy souboru, vytvořte nové připojení ODBC na serveru DSC. Název, bitová hloubka a nastavení připojení musí být stejné jako při vytváření souboru MDB. Zde můžete zkopírovat již nakonfigurovaný prázdný soubor devices.mdb.
- Chcete-li použít devices.mdb, musíte provést změny v souboru web.config serveru pro stahování DSC (výchozí je C:inetpubPSDSCPullServerweb.config):
- pro 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;">
- pro 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;">
Tím je nastavení serveru DSC dokončeno.
Kontrola funkčnosti serveru DSC
- Zkontrolujte, zda je server DSC přístupný prostřednictvím webového prohlížeče.
- Nyní zkontrolujeme, zda DSC pull server funguje správně. Za tímto účelem modul xPSDesiredStateConfiguration obsahuje skript pullserversetuptests.ps1. Před spuštěním tohoto skriptu musíte nainstalovat modul Powershell s názvem Pester. Nainstalujte jej Install-Module -Name Pester.
- Otevřete C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<verze modulu>DSCPullServerSetupPullServerDeploymentVerificationTest (v příkladu verze 8.0.0.0.0).
- Otevřete PullServerSetupTests.ps1 a zkontrolujte cestu k web.config serveru DSC. Cesta k web.config, která bude skript kontrolovat, je zvýrazněna červeně. V případě potřeby tuto cestu změníme.
- Spusťte pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - V SQL Management Studio vidíme, že administrovaní hostitelé odesílají reporty na reportovací server DSC a data končí v databázi DSC na SQL serveru.
To je vše. V následujících článcích vám plánuji říci, jak vytvořit sestavy ze získaných dat, a dotknu se otázek odolnosti proti chybám a škálovatelnosti.
Zdroj: www.habr.com