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
Aghju trovu stu metudu: per quelli chì utilizanu Windows Server 2012 è 2016, pudete
Nota: Per Windows Server 2016 duvete aduprà
Ùn andaraghju in dettagliu nantu à u prucessu di implementà un servitore di pull DSC, hè assai ben descrittu
-
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).
-
Enable32BitAppOnWin64 = $true
Se ùn fate micca sta mudificazione, ùn puderà micca eseguisce u servitore AppPool DSC in IIS cù WSUS.
- 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
- Creemu una basa di dati SQL vacante chjamata DSC.
- Creemu un contu per cunnette à sta basa di dati. Prima, verificate chì u servitore SQL permette l'autentificazione di i cunti Windows è SQL.
- 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.
- Fattu.
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.
- Per impurtà dati, eseguite u SQL Server Import and Export Wizard.
- Scegliemu induve avemu da ottene e dati - in u nostru casu hè una basa di dati Microsoft Access. Cliccate Next.
- Selezziunate u schedariu da quale avemu impurtatu u schema.
- Indichemu induve impurtà - per noi hè una basa di dati SQL.
- Selezziunate u servitore SQL (Server Name) è a basa di dati in quale impurtaremu dati (DataBase).
- Selezziunate l'opzione Copia dati da una o più tavule o viste (copiendu dati da tavule o viste).
- Selezziunà e tavule da quale impurtaremu u schema di basa di dati.
- Verificate a casella di spunta Run Immediately è cliccate Finish.
- Fattu.
- In u risultatu, i tavulini duveranu apparisce in a basa di dati DSC.
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:
- 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).
- Indichemu chì avemu da cunnette à u servitore SQL. Cliccate Finish.
- Specificate u nome è u servitore per cunnette. Allora una cunnessione cù i stessi paràmetri deve esse creatu nantu à u servitore DSC.
- Indicà chì per cunnette à u servitore SQL, usemu un login creatu prima cù u nome DSC.
- Specificemu a basa di dati in i paràmetri di cunnessione DSC.
- Cliccate Finish.
- Prima di compie a stallazione, verificamu chì a cunnessione hè travagliatu (Test Data Source).
- Fattu.
Crià una basa di dati devices.mdb in MS Access. Lanciate MS Access è crea una basa di dati viota chjamata devices.mdb.
- 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.
- In a nova finestra, selezziunate a tabulazione Machine Data Source è cliccate OK. In a nova finestra, inserite e credenziali per cunnette à u servitore SQL.
- Selezziunate e tavule chì deve esse ligate. Verificate a casella Salvà password è cliccate OK. Salvà a password ogni volta per e trè tavule.
- In l'indici avete bisognu di selezziunà i seguenti:
- TargetName per a tavola dbo_Devices;
- NodeName o IPAddress per dbo_RegistrationData;
- NodeName o IPAddress per dbo_StatusReport. - Rinumatemu e tavule in MS Access, vale à dì: sguassate u prefissu dbo_ per chì DSC pò usà.
- Fattu.
- 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
- 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ì.
- 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
- Cuntrollamu chì u servitore DSC hè accessibile attraversu un navigatore web.
- 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.
- Apertura C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (in a versione di esempiu 8.0.0.0.0).
- 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.
- Eseguite pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - 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.
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