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
He trobat aquest mètode: per a aquells que utilitzen Windows Server 2012 i 2016, podeu fer-ho
Nota: per a Windows Server 2016, heu d'utilitzar
No entraré en detalls sobre el procés de desplegament d'un servidor d'extracció DSC, està molt ben descrit
-
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).
-
Enable32BitAppOnWin64 = $true
Si no feu aquest canvi, no podreu executar el servidor AppPool DSC a IIS amb WSUS.
- 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
- Creem una base de dades SQL buida anomenada DSC.
- 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.
- 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.
- Fet.
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.
- Per importar dades, executeu l'assistent d'importació i exportació de SQL Server.
- Triem d'on obtindrem les dades, en el nostre cas és una base de dades de Microsoft Access. Feu clic a Següent.
- Seleccioneu el fitxer des del qual importem el diagrama.
- Indiquem on importar - per a nosaltres és una base de dades SQL.
- Seleccioneu el servidor SQL (Nom del servidor) i la base de dades a la qual importarem les dades (Base de dades).
- Seleccioneu l'opció Copia dades d'una o més taules o vistes.
- Seleccionem les taules des de les quals importarem l'esquema de la base de dades.
- Marqueu la casella de selecció Executar immediatament i feu clic a Finalitza.
- Fet.
- Com a resultat, les taules haurien d'aparèixer a la base de dades DSC.
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ó:
- 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).
- Indiquem que ens connectarem al servidor SQL. Feu clic a Finalitzar.
- Especifiqueu el nom i el servidor al qual connecteu-vos. Aleshores caldrà crear una connexió amb els mateixos paràmetres al servidor DSC.
- Indiquem que per connectar-nos al servidor SQL, utilitzem un login creat prèviament amb el nom DSC.
- Especifiquem la base de dades a la configuració de connexió DSC.
- Feu clic a Finalitzar.
- Abans de completar la configuració, comprovem que la connexió funciona (font de dades de prova).
- Fet.
Creació d'una base de dades devices.mdb a MS Access. Inicieu MS Access i creeu una base de dades buida anomenada devices.mdb.
- 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.
- 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.
- 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.
- Als índexs heu de seleccionar el següent:
— TargetName per a la taula dbo_Devices;
— NodeName o IPAddress per a dbo_RegistrationData;
— NodeName o IPAddress per a dbo_StatusReport. - Canviem el nom de les taules a MS Access, és a dir: elimineu el prefix dbo_ perquè DSC les pugui utilitzar.
- Fet.
- 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
- 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í.
- 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
- Comprovem que el servidor DSC sigui accessible mitjançant un navegador web.
- 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.
- Obriu C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (a la versió d'exemple 8.0.0.0.0).
- 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í.
- Executeu pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - 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.
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