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

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

PowerShell Desired State Configuration (DSC) lihtsustab oluliselt operatsioonisüsteemi, serveri rollide ja rakenduste kasutuselevõttu ja seadistamist, kui teil on sadu servereid.

Kuid DSC-d kohapeal, st mitte MS Azure'is, kasutades tekib paar nüanssi. Need on eriti tuntavad suurtes organisatsioonides (alates 300 tööstusjaamast ja serverist), kus konteinerite maailm pole veel avatud:

  • Puuduvad kvaliteetsed süsteemi oleku aruanded. Kui vajalikke seadistusi ei rakendatud mõnedes serverites, ei saa me nende aruannete puudumise tõttu seda teada. Integreeritud aruande serverist teabe saamine on päris keeruline ja suurte hostide arvu puhul ka aeganõudev.
  • Puudub skaleeritavus ja rikete taluvus. Ei ole võimalik luua DSC küsitavaid veebiservereid, millel oleks ühine rikete taluvuse andmebaas ja ühine mof-failide, moodulite ja registri võtmete hoidla.

Täna räägin, kuidas saab lahendada esimese probleemi ja saada andmeid aruannete koostamiseks. Kõik oleks lihtsam, kui andmebaasina saaks kasutada SQL-i. MS lubab sisseehitatud toe ainult Windows Server 2019 või Windows Server 1803 buildis. Andmete hankimine OleDB pakkuja abil ei toimi, kuna DSC-server kasutab nimetatud parameetrit, mida OleDbCommand ei toeta täielikult.

Leidsin sellise meetodi: need, kes kasutavad Windows Server 2012 ja 2016, võivad konfigureerida SQL andmebaasi kasutamise backend’ina küsitletava DSC-serveri jaoks. Selleks loome .mdb faili kujul "proksi", milles on seotud tabelid, mis suunavad kliendi aruannetest saadud andmed SQL-serveri andmebaasi.

Märkus: Windows Server 2016 jaoks tuleb kasutada AccessDatabaseEngine2016x86, kuna Microsoft.Jet.OLEDB.4.0 ei ole enam toetatud.

Ma ei hakka pikalt peatuma DSC-serveri küsimise seadistamise protsessil, see on väga hästi kirjeldatud siin. Tahan märkida vaid paar asjaolu. Kui käivitame küsitleva DSC ühel veebiserveril koos WSUS-i või Kaspersky Security Centeriga, tuleb konfiguratsiooniskriptis muuta järgmisi parameetreid:

  1. UseSecurityBestPractices     = $false

    Vastasel juhul keelatakse TLS 1.0 ja te ei saa SQL andmebaasiga ühendust. Kaspersky Security Center samuti ei tööta (probleem peaks olema lahendatud Kaspersky Security Center v11-s).

  2. Enable32BitAppOnWin64   = $true

    Kui seda muudatust ei tehta, ei õnnestu AppPool DSC serveri käivitamine IIS-is koos WSUS-iga.

  3. DSC serveri installimisel koos WSUS-iga keelake staatiline ja dünaamiline vahemälu DSC saidi jaoks.

Liigume edasi DSC serveri seadistamise juurde SQL andmebaasi kasutamiseks.

SQL andmebaasi loomine

  1. Loome tühja SQL andmebaasi nimega DSC.

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

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

  2. Loome ühenduse konto selle andmebaasi ühendamiseks. Kontrollige eelnevalt, et SQL serveris oleks lubatud Windowsi ja SQL-i kontode autentimine.

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

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

  3. Liigume jaotisse User Mapping. Valime andmebaasi, antud juhul – DSC. Anname andmebaasi omandi õigused.

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

  4. Valmis.

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

Schema loomine DSC andmebaasi jaoks

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 andmeid tühjast devices.mdb-st PS-mooduli PSDesiredStateConfiguration kaudu SQL-i andmete importimise viisardi kaudu.

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

  1. Andmete importimiseks käivitame SQL Serveri importimise ja eksportimise viisardi.

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

  2. Valime, kust me andmeid võtame – meie juhul on see Microsoft Accessi andmebaas. Klõpsa 'Järgmine'.

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

  3. Valime faili, kust impordime skeemi.

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

  4. Määrame, kuhu imporditakse – meil on see SQL-tabel.

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

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

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

  6. Valime valiku Copy data from one or more tables or views (andmete kopeerimine tabelitest või vaadetest).

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

  7. Valime tabelid, millest impordime andmebaasi skeemi.

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

  8. Asetame linnukese Run Immediately ja klõpsame Finish.

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

  9. Valmis.

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

  10. Tulemuseks peaks andmebaasis DSC ilmuma tabelid.

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

MDB ‚proxy‘ faili seadistamine

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

Loome süsteemse ODBC-ühenduse SQL-serveriga (ühenduse bitisus peab olema sama, mis MS Accessil – 64 või 32). Seda saab luua järgmiselt:
— Powershelli käsureaga:

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, ühenduse maagia abil:

  1. Avame Administrative tools. Valime ODBC andmeallikad, sõltuvalt installitud MS Accessi versioonist. Liigume vahekaardile System DSN ja loome süsteemse ühenduse (Add).

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

  2. Määrame, et ühendame SQL-serveriga. Vajutame Lõpeta.

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

  3. Sisestame ühendamiseks nime ja serveri. Hiljem tuleb luua serveris ühendus samade parameetritega.

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

  4. Määrame, et SQL-serveriga ühendamiseks kasutatakse eelnevalt loodud kasutajanime DSC.

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

  5. Määrame DB DSC ühenduse seadetes.

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

  6. Vajutame Lõpeta.

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

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

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

  8. Valmis.

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

Loomine andmebaas devices.mdb MS Accessis. Käivitame MS Accessi ja loome tühi andmebaas nimega devices.mdb.

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

  1. Läheme vahekaardile Välised andmed, klõpsame ODBC andmebaasil. Ilmunud aknas valime Luua seotud tabel andmeallikaga ühendamiseks.

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

  2. Uues aknas valime vahekaardi Machine Data Source ja vajutame OK. Uues aknas sisestame SQL-serverile ühendamiseks kasutatavad volikirjad.

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

  3. Valime tabelid, mida on vaja lingida. Märgime ruutu Salvestada parool ja vajutame OK. Parooli tuleb igakord salvestada kolme tabeli jaoks.

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

  4. Indeksite valikul tuleb valida järgmised:
    — TargetName tabeli dbo_Devices jaoks;

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

    — NodeName või IPAddress tabeli dbo_RegistrationData jaoks;

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

    — NodeName või IPAddress tabeli dbo_StatusReport jaoks.

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

  5. Nimeame MS Accessi tabelid, eemaldades dbo_ eeltee, et DSC saaks neid kasutada.

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

  6. Valmis.

    PowerShell Desired State Configuration ja hoiner: 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 olemasoleva (kui see on olemas).

DSC-serveri seadistamine SQL-i kasutamiseks

  1. Naaseme DSC-serverisse. SQL-serveriga ühenduse loomiseks meie proxy-failiga loome uue ODBC-ühenduse DSC-serveris. Nimi, arhitektuur ja ühenduse seaded peavad olema samad nagu MDB-faili loomisel. Siit võib kopeerida juba seadistatud tühja devices.mdb faili.
  2. devices.mdb kasutamiseks tuleb teha muudatusi DSC-i serveri web.config failis (vaikimisi C:inetpubPSDSCPullServerweb.config):

— Windows Server 2012 jaoks

— Windows Server 2016 jaoks

DSC-serveri seadistamine on nüüd lõpetatud.

DSC-serveri töökindluse kontrollimine

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

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

  2. Nüüd kontrollime, kas DSC serveri küsitlemine töötab õigesti. Selleks on xPSDesiredStateConfiguration moodulis skript pullserversetuptests.ps1. Enne selle skripti käivitamist tuleb installida Powershell moodul nimega Pester. Installime selle käsuga Install-Module -Name Pester.
  3. Avame C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfigurationDSCPullServerSetupPullServerDeploymentVerificationTest (näite versioon 8.0.0.0.0).

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

  4. Avame PullServerSetupTests.ps1 ja kontrollime DSC serveri web.configi teed. Punasega on välja toodud tee web.configini, mida skript kontrollib. Vajadusel muudame seda teed.

    PowerShell Desired State Configuration ja hoiner: 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 hoiner: osa 1. DSC Pull Serveri seadistamine SQL andmebaasiga töötamiseks

  6. SQL Management Studios näeme, et haldatud hostid saadavad DSC raportite serverile aruandeid ja andmed jõuavad SQL serveri DSC andmebaasi.

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

Sellega on kõik. Järgmistes artiklites plaanin rääkida, kuidas saadud andmetest aruandeid koostada, ning puudutan ka küsimusi, mis on seotud talitlusvõime ja skaleeritavusega.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster