PowerShelli soovitud oleku konfiguratsioon (DSC) lihtsustab oluliselt operatsioonisüsteemi, serverirollide ja rakenduste juurutamist ja konfigureerimist, kui teil on sadu servereid.
Aga kui kasutada DSC on-premises, st. mitte MS Azure'is, seal on paar nüanssi. Need on eriti märgatavad, kui organisatsioon on suur (alates 300 tööjaamast ja serverist) ega ole veel konteinerite maailma avastanud:
- Puuduvad täielikud aruanded süsteemide oleku kohta. Kui mõnel serveril pole vajalikku konfiguratsiooni rakendatud, siis ilma nende aruanneteta me sellest teada ei saa. Sisseehitatud aruandlusserverist on info hankimine üsna keeruline ja suure hulga hostide puhul võib see samuti kaua aega võtta.
- Puudub mastaapsus ja veataluvus. On võimatu ehitada DSC-pulga veebiserverite farmi, millel oleks üks tõrketaluv andmebaas ja ühine MOF-failide salvestusseade konfiguratsioonide, moodulite ja registreerimisvõtmete jaoks.
Täna räägin teile, kuidas saate esimese probleemi lahendada ja aruandluse jaoks andmeid hankida. Kõik oleks lihtsam, kui SQL-i saaks kasutada andmebaasina. PRL
Leidsin selle meetodi: need, kes kasutavad Windows Server 2012 ja 2016, saate seda teha
Märkus. Windows Server 2016 jaoks peate kasutama
Ma ei hakka DSC-tõmbeserveri juurutamise protsessi üksikasjalikult kirjeldama, see on väga hästi kirjeldatud
-
UseSecurityBestPractices = $false
Vastasel juhul keelatakse TLS 1.0 ja te ei saa SQL-i andmebaasiga ühendust luua. Samuti ei tööta Kaspersky Security Center (probleem peaks olema lahendatud Kaspersky Security Center v11-s).
-
Enable32BitAppOnWin64 = $true
Kui te seda muudatust ei tee, ei saa te AppPool DSC-serverit WSUS-iga IIS-is käitada.
- Kui installite DSC-serveri koos WSUS-iga, keelake DSC saidi staatiline ja dünaamiline vahemälu.
Liigume edasi DSC-serveri seadistamise juurde SQL-andmebaasi kasutamiseks.
SQL-i andmebaasi loomine
- Loome tühja SQL-i andmebaasi nimega DSC.
- Loome selle andmebaasiga ühenduse loomiseks konto. Esiteks kontrollige, kas SQL-server lubab nii Windowsi kui ka SQL-i kontode autentimist.
- Minge jaotisse Kasutaja kaardistamine. Valige andmebaas, antud juhul DSC. Anname andmebaasi omaniku õigused.
- Valmis.
Skeemi loomine DSC andmebaasi jaoks
DSC andmebaasi skeemi loomiseks on kaks võimalust:
- iseseisvalt TSQL-i skripti kaudu
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
- importida andmeid tühjadest devices.mdb-st PS-mooduli PSDesiredStateConfiguration osana SQL-i andmete importimise viisardi kaudu.
Devices.mdb, millega me töötame, asub failis C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Andmete importimiseks käivitage SQL Serveri impordi- ja ekspordiviisard.
- Meie valime, kust andmed saame – meie puhul on selleks Microsoft Accessi andmebaas. Klõpsake nuppu Edasi.
- Valige fail, millest diagrammi impordime.
- Näitame, kuhu importida – meie jaoks on see SQL-andmebaas.
- Valige SQL-server (Server Name) ja andmebaas, kuhu andmeid impordime (DataBase).
- Valige suvand Kopeeri andmed ühest või mitmest tabelist või vaatest.
- Valime tabelid, millest impordime andmebaasi skeemi.
- Märkige ruut Käivita kohe ja klõpsake nuppu Lõpeta.
- Valmis.
- Selle tulemusena peaksid tabelid ilmuma DSC andmebaasi.
Mdb "puhverserveri" faili seadistamine
ODBC-ühenduse loomine SQL-serveriga. Eeldatakse, et DSC-d töötavasse serverisse pole installitud MS Access, mistõttu andmebaass.mdb seadistamine toimub vahepealses hostis, kuhu on installitud MS Access.
Loome süsteemi ODBC ühenduse SQL serveriga (ühenduse bitisagedus peab ühtima MS Accessi bitidsusega - 64 või 32). Seda saab luua kasutades:
- Powershelli cmdlet:
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
— või käsitsi, kasutades ühenduse viisardit:
- Avage haldustööriistad. Valime ODBC andmeallikad sõltuvalt installitud MS Accessi versioonist. Minge vahekaardile System DSN ja looge süsteemiühendus (Lisa).
- Anname märku, et loome ühenduse SQL-serveriga. Klõpsake nuppu Lõpeta.
- Määrake nimi ja server, millega ühenduse luua. Seejärel tuleb DSC-serveris luua ühendus samade parameetritega.
- Märkame, et SQL-serveriga ühenduse loomiseks kasutame varem loodud sisselogimist nimega DSC.
- Andmebaasi täpsustame DSC ühenduse seadetes.
- Klõpsake nuppu Lõpeta.
- Enne seadistamise lõpetamist kontrollime ühenduse toimimist (Test Data Source).
- Valmis.
Devices.mdb andmebaasi loomine MS Accessis. Käivitage MS Access ja looge tühi andmebaas nimega devices.mdb.
- Minge vahekaardile Välised andmed ja klõpsake ODBC andmebaasi. Valige kuvatavas aknas Andmeallikaga ühenduse loomiseks loo lingitud tabel.
- Valige uues aknas vahekaart Masina andmeallikas ja klõpsake nuppu OK. Sisestage uues aknas SQL-serveriga ühenduse loomiseks mandaadid.
- Valige tabelid, mis tuleb linkida. Märkige ruut Salvesta parool ja klõpsake nuppu OK. Salvestage kõigi kolme tabeli parool iga kord.
- Indeksides peate valima järgmise:
— tabeli dbo_Devices sihtnimi;
— dbo_RegistrationData sõlmenimi või IP-aadress;
— dbo_StatusReporti sõlmenimi või IP-aadress. - Nimetame tabelid MS Accessis ümber, nimelt: eemaldame eesliide dbo_, et DSC saaks neid kasutada.
- Valmis.
- Salvestage fail ja sulgege MS Access. Nüüd kopeerige saadud devices.mdb DSC serverisse (vaikimisi C:Program FilesWindowsPowershellDSCServices) ja asendage olemasolev sellega (kui see on olemas).
DSC-serveri konfigureerimine SQL-i kasutamiseks
- Pöördume tagasi DSC serverisse. SQL-serveriga ühenduse loomiseks meie puhverserveri abil loome DSC-serveris uue ODBC-ühenduse. Nimi, bitisügavus ja ühenduse sätted peavad olema samad, mis MDB-faili loomisel. Siit saate kopeerida juba seadistatud tühjad devices.mdb.
- Devices.mdb kasutamiseks peate tegema muudatusi DSC-tõmbeserveri failis web.config (vaikimisi on C:inetpubPSDSCPullServerweb.config):
- Windows Server 2012 jaoks
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
- Windows Server 2016 jaoks
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
See lõpetab DSC-serveri seadistamise.
DSC-serveri funktsionaalsuse kontrollimine
- Kontrollime, kas DSC-server on veebibrauseri kaudu juurdepääsetav.
- Nüüd kontrollime, kas DSC-tõmbeserver töötab õigesti. Selleks sisaldab moodul xPSDesiredStateConfiguration skripti pullserversetuptests.ps1. Enne selle skripti käivitamist peate installima Powershelli mooduli nimega Pester. Installige see Install-Module - Name Pester.
- Avage C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<mooduli versioon>DSCPullServerSetupPullServerDeploymentVerificationTest (näiteversioonis 8.0.0.0.0).
- Avage PullServerSetupTests.ps1 ja kontrollige DSC-serveri faili web.config teed. Tee veebilehele web.config, mis kontrollib skripti, on punasega esile tõstetud. Vajadusel muudame seda teed.
- Käivitage pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Kõik töötab. - SQL Management Studios näeme, et administreeritud hostid saadavad aruandeid DSC aruandlusserverisse ja andmed jõuavad SQL serveri DSC andmebaasi.
See on kõik. Järgmistes artiklites kavatsen teile rääkida, kuidas saadud andmetest aruandeid koostada, ning käsitlen tõrketaluvuse ja mastaapsuse küsimusi.
Allikas: www.habr.com