PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

PowerShell Desired State Configuration (DSC) lihtsustab operatsioonisüsteemi, serveri rollide ja rakenduste juurutamist ja konfigureerimist oluliselt, kui teil on sadu servereid.

Kuid DSC-d kasutades kohalikes tingimustes, st mitte MS Azure'is, tekib paar nüanssi. Need on eriti tuntavad, kui organisatsioon on suur (alates 300 tööjaamast ja serverist) ja seal ei ole veel konteinerite maailma avatud:

  • Kuna puuduvad täielikud süsteemi seisundi aruanded. Kui vajalik konfiguratsioon ei rakendunud mõnel serveril, siis ilma nende aruandeta me seda ei tea. Sisseehitatud aruande serverist on teabe saamine üsna keeruline ning suure hulga hostide korral ka aeganõudev.
  • Puudub skaleeritavus ja rikete taluvus. Ei ole võimalik luua DSC küsitavate veebiserverite farmi, millel oleks ühine rikete taluvuse andmebaas ja ühine konfiguratsioonide, moodulite ja registri võtmete mof-failide hoidla.

Täna räägin, kuidas esimest probleemi lahendada ja saada andmeid aruandluse koostamiseks. Kõik oleks lihtsam, kui andmebaasina oleks võimalik kasutada SQL-i. MS lubab sisseehitatud tuge ainult Windows Server 2019-s või Windows Server 1803 versioonis. Andmete saamine OleDB pakkuja abil ei õnnestu ka sest DSC server kasutab nimetatud parameetrit, mis ei ole täielikult toetatud OleDbCommand'is.Olen leidnud sellise viisi: neile, kes kasutavad Windows Server 2012 ja 2016, on võimalik

kasutada SQL andmebaasi küsimise DSC serveri tagaplaanina. Selleks loome "proksi" .mdb faili kujul seotud tabelitega, mis suunab andmed, mis saadakse klientide aruannetest, SQL-serveri andmebaasi. seadistada Märkus: Windows Server 2016 jaoks tuleb kasutada

AccessDatabaseEngine2016x86 sest Microsoft.Jet.OLEDB.4.0 ei ole enam toetatud.Ma ei jää selle DSC küsiva serveri juurutamise protsessi juurde peatuma, see on väga hästi kirjeldatud

. Tõstan esile vaid paar punkti. Kui me juurutame DSC küsiva serveri ühel veebiserveril koos WSUS-i või Kaspersky Security Centeriga, siis tuleb konfiguratsiooni loomise skriptis muuta järgmisi parameetreid: siitUseSecurityBestPractices = $false

  1. Vastasel juhul TLS 1.0 keelatakse, te ei pääse SQL andmebaasi. Kaspersky Security Center samuti ei tööta (probleem peaks olema lahendatud Kaspersky Security Center v11-s).

    Enable32BitAppOnWin64 = $true

  2. Käivita 32BitAppWin64   = $true

    Kui muudatust ei tehta, ei ole võimalik käivitada AppPool DSC-serverit IIS-is koos WSUS-iga.

  3. DSC-serveri installimisel koos WSUS-iga keela staatiline ja dünaamiline vahemälu DSC saidil.

Liigume edasi DSC serveri seadistamiseks SQL andmebaasi kasutamiseks.

SQL andmebaasi loomine

  1. Loome tühja SQL andmebaasi nimega DSC.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  2. Loome konto, et sellele andmebaasile juurde pääseda. Veendu, et SQL-serveris on lubatud nii Windowsi kui ka SQL-i kasutajakonto autentimine.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  3. Liigume jaotisse User Mapping. Valime andmebaasi, sel juhul – DSC. Anname andmebaasi omaniku õigused.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  4. Valmis.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

Andmebaasi DSC jaoks skeemi loomine

DSC andmebaasi skeemi saab luua kahel viisil:

  • ise, TSQL 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 andmed tühjast devices.mdb failist PSDesiredStateConfiguration PS-moduli kaudu SQL Andmete Impordi Nõustaja abil.

    Devices.mdb, millega me töötame, asub C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Andmete importimiseks käivitage SQL Serveri Import and Export Wizard.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  2. Valime, kust me andmeid võtame – meie puhul on see Microsoft Access andmebaas. Vajutame Next.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  3. Valime faili, kust me skeemi importime.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  4. Määrame, kuhu importida – meil on see SQL andmebaas.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  5. Valime SQL-serveri (Server Name) ja andmebaasi, kuhu importime andmed (DataBase).

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  6. Valime valiku Copy data from one or more tables or views (andmete kopeerimine ühest või mitmest tabelist või vaatepunktist).

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  7. Valime tabelid, millest me andmebaasi skeemi impordime.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  8. Paneme märgi Run Immediately ja vajutame Finish.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  9. Valmis.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  10. Tulemuseks peaks DSC andmebaasis olema tabelid.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

Seadistamine .mdb "proksi" faili

ODBC-ühenduse loomine SQL-serveriga. Eeldatakse, et MS Access ei ole serveris, kus on DSC, seega seadistatakse databases.mdb vaheserveris, kus on MS Access juba installitud.

Loomeme süsteemse ODBC-ühenduse SQL-serveriga (ühenduse arhitektuur peab vastama MS Accessi arhitektuurile – 64 või 32). Selle saab luua järgmistel viisidel:
— PowerShelli käsklusega:

Add-OdbcDsn –Name DSC –DriverName 'SQL Server' –Platform '' –DsnType System –SetPropertyValue @('Description=DSC Pull Server',"Server=''",'Trusted_Connection=yes','Database=DSC') –PassThru

— või käsitsi, ühenduste maagia abil:

  1. Avame haldustööriistad. Valime ODBC andmeallika vastavalt installitud MS Accessi versioonile. Liigume System DSN vahelehele ja loome süsteemiühenduse (Add).

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  2. Märkime, et ühendume SQL-serveriga. Vajutame Finish.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  3. Märkime ühenduse nime ja serveri. Seejärel tuleb luua ühendus samade parameetritega DSC-serveris.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  4. Märkime, et SQL-serveriga ühendamiseks kasutatakse eelnevalt loodud konto nimega DSC.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  5. Märkime DSC ühenduse seadetes andmebaasi.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  6. Vajutame Finish.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  7. Enne seadistuse lõpetamist kontrollime, et ühendus töötab (Test Data Source).

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  8. Valmis.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

Andmebaasi devices.mdb loomine MS Accessis. Käivitame MS Accessi ja loome tühja andmebaasi nimega devices.mdb.

PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  1. Liigume välistesse andmetesse, klõpsame ODBC andmebaasil. Ilmunud aknas valime Loo seotud tabel andmeallika sidumiseks.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  2. Uues aknas valime vahepealse Machine Data Source ja vajutame OK. Uues aknas sisestame SQL-serveriga ühendamiseks vajalikud mandaadid.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  3. Valime tabelid, mida on vaja siduda. Märgime ruut Säästa parool ja vajutame OK. Parooli tuleb iga kord kõigi kolme tabeli jaoks salvestada.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  4. Indeksites tuleb valida järgmist:
    — TargetName tabeli dbo_Devices jaoks;

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

    — NodeName või IPAddress tabeli dbo_RegistrationData jaoks;

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

    — NodeName või IPAddress tabeli dbo_StatusReport jaoks.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  5. Muudame tabelite nimesid MS Accessis, nimelt: eemaldame eesliite dbo_, et DSC saaks neid kasutada.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  6. Valmis.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  7. Salvestame faili ja sulgeme MS Accessi. Nüüd kopeerime saadud devices.mdb DSC-serverisse (vaikimisi C:Program FilesWindowsPowershellDSCService) ja asendame selle olemasolevaga (kui see on olemas).

DSC-serveri seadistamine SQL-i kasutamiseks

  1. Naasime tagasi DSC serveri juurde. Et ühendada SQL-server meie proxy-failiga, loome DSC serveris uue ODBC ühenduse. Nimi, suurus ja ühenduse seadistused peavad olema samad nagu MDB-faili loomisel. Saame kopeerida juba seadistatud tühja devices.mdb siit.
  2. Et kasutada devices.mdb, tuleb teha muudatusi DSC kuttserveri web.config failis (vaikimisi – C:inetpubPSDSCPullServerweb.config):

— Windows Server 2012 jaoks

— Windows Server 2016 jaoks

Sellega on DSC serveri seadistamine lõpetatud.

DSC serveri töö kontrollimine

  1. Kontrollime, kas DSC server on kergesti ligipääsetav veebibrauseri kaudu.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  2. Nüüd kontrollime, kas DSC kuttserver töötab õigesti. Selleks on xPSDesiredStateConfiguration moodulis skript pullserversetuptests.ps1. Enne skripti käivitamist on vajalik installida Powershelli moodul nimega Pester. Paigaldame selle Install-Module -Name Pester.
  3. Avame C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfigurationDSCPullServerSetupPullServerDeploymentVerificationTest (näites versioon 8.0.0.0.0).

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  4. Avame PullServerSetupTests.ps1 ja kontrollime DSC serveri web.config faili teed. Punasega on välja toodud web.config tee, mida skript kontrollib. Kui on vajalik, muudame seda teed.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  5. Käivitame pullserversetuptests.ps1
    Invoke-Pester .PullServerSetupTests.ps1
    Kõik töötab.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

  6. SQL Management Studios näeme, et haldatavad hostid saadavad aruandeid DSC aruande serverisse ja andmed jõuavad SQL-serveri DSC andmebaasi.

    PowerShell Desired State Configuration ja viilimisseade: osa 1. DSC Pull Serveri seadistamine SQL-andmebaasiga töötamiseks

Sellega on kõik. Järgmistes artiklites plaanin rääkida, kuidas esitatud andmete põhjal aruandeid koostada ja puudutada talitlushäirete ja skaleeritavuse küsimusi.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster