Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

Veavakirina Dewleta Xwestî ya PowerShell (DSC) gava ku hûn bi sedan server hene, karê danîn û mîhengkirina pergala xebitandinê, rolên serverê û serîlêdanan pir hêsan dike.

Lê dema ku DSC-ê li hundurê bikar tînin, yanî. ne di MS Azure de, çend nuwaze hene. Ew bi taybetî diyar dibin ger rêxistin mezin be (ji 300 stasyonên xebatê û pêşkêşkeran) û hîn cîhana konteyneran kifş nekiriye:

  • Li ser rewşa pergalan raporên tevahî tune. Ger veavakirina pêwîst li ser hin serveran nehatiye sepandin, wê hingê bêyî van raporan em ê pê nizanin. Agahdariya ji servera ragihandinê ya çêkirî pir dijwar e, û ji bo hejmareke mezin a mêvandar jî ew dikare demek dirêj bigire.
  • Kêmasîbûn û tolerasyona xeletiyê tune. Ne mumkun e ku meriv cotkarek serverên webê yên DSC-ê yên ku dê xwediyê databasek yek-tehemul a xeletiyê û hilanînek hevpar a pelên mof-ê ji bo veavakirin, modul û mifteyên qeydkirinê hebe.

Îro ez ê ji we re vebêjim ka hûn çawa dikarin pirsgirêka yekem çareser bikin û ji bo raporkirinê daneyan bistînin. Ger SQL wekî databas were bikar anîn dê her tişt hêsantir be. MS soz dide Piştgiriya çêkirî tenê di Windows Server 2019 an de di avakirina servera Windows 1803 de. Daneyên bi karanîna pêşkêşkarê OleDB jî bistînin dê kar nekeji ber ku Pêşkêşkara DSC pîvanek binavkirî bikar tîne ku bi tevahî ji hêla OleDbCommand ve nayê piştgirî kirin.

Min ev rêbaz dît: ji bo kesên ku Windows Server 2012 û 2016 bikar tînin, hûn dikarin miqam ji bo servera pirsê ya DSC-ê databasek SQL wekî paşvekêşek bikar tîne. Ji bo vê yekê, em ê di forma pelek .mdb de bi tabloyên têkildar re "proxy" biafirînin, ku dê daneyên ku ji raporên xerîdar hatine wergirtin beralî databasa servera SQL bike.

Nîşe: Ji bo Windows Server 2016 divê hûn bikar bînin AccessDatabaseEngine2016x86ji ber ku Microsoft.Jet.OLEDB.4.0 êdî nayê piştgirî kirin.

Ez ê di derbarê pêvajoya bicîhkirina serverek vekişînê ya DSC de hûrgulî nekim, ew pir xweş tê rave kirin vir. Ez ê tenê çend xalan destnîşan bikim. Ger em bi WSUS an Navenda Ewlekariyê ya Kaspersky vekêşkera DSC-ê li ser heman servera malperê bi cîh bikin, wê hingê di skrîpta çêkirina vesazkirinê de pêdivî ye ku em pîvanên jêrîn biguhezînin:

  1. UseSecurityBestPractices     = $false

    Wekî din, TLS 1.0 dê bête asteng kirin û hûn ê nikaribin bi databasa SQL-ê ve girêbidin. Navenda Ewlekariya Kaspersky jî dê nexebite (divê pirsgirêk di Navenda Ewlekariya Kaspersky v11 de were çareser kirin).

  2. Enable32BitAppOnWin64   = $true

    Ger hûn vê guhertinê nekin, hûn ê nikaribin servera AppPool DSC-ê li ser IIS bi WSUS-ê bimeşînin.

  3. Dema ku servera DSC-ê bi WSUS-ê re saz dike, cachkirina statîk û dînamîk ji bo malpera DSC-ê neçalak bike.

Werin em biçin sazkirina servera DSC-ê da ku databasa SQL bikar bîne.

Afirandina databasek SQL

  1. Ka em databasek SQL ya vala bi navê DSC biafirînin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  2. Werin em ji bo girêdana vê databasê hesabek çêbikin. Pêşîn, kontrol bikin ku servera SQL destûrê dide rastkirina hem hesabên Windows û hem jî SQL.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  3. Biçe beşa Nexşeya Bikarhêner. Databasê, di vê rewşê de DSC hilbijêrin. Em mafên xwediyê databasê didin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  4. Çêbû.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

Afirandina Schema ji bo Database DSC

Du awayên afirandina şemayek ji bo databasek DSC hene:

  • serbixwe, bi riya skrîptek 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
  • Daneyên ji cîhazên vala derxînin.mdb wekî beşek ji modula PS PSDesiredStateConfiguration bi navgîniya SQL Data Import Wizard.

    Devices.mdb ku em ê pê re bixebitin di C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer de ye.

  1. Ji bo îtxalkirina daneyan, SQL Server Import and Export Wizard bimeşînin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  2. Em hilbijêrin ku em ê daneyan ji ku bistînin - di doza me de ew databasek Microsoft Access e. Bikirtînin Next.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  3. Pelê ku em diagramê jê derdixin hilbijêrin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  4. Em destnîşan dikin ku derê tê import kirin - ji bo me ew databasek SQL ye.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  5. Pêşkêşkara SQL (Navê Pêşkêşkar) û databasa ku em ê daneyan tê de derxînin (DataBase) hilbijêrin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  6. Vebijarka Kopîkirina daneyan ji yek an çend tablo an dîmenan hilbijêrin (kopîkirina daneyan ji tablo an dîtinan).

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  7. Em tabloyên ku em ê şemaya databasê ji wan derxînin hilbijêrin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  8. Bişkojka Hilbijartina Yekser Bixebitînin û bikirtînin Finish.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  9. Çêbû.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  10. Wekî encamek, divê tablo di databasa DSC de xuya bibe.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

Sazkirina pelê .mdb "proxy".

Afirandina pêwendiyek ODBC bi serverek SQL re. Tê texmîn kirin ku MS Access li ser servera ku DSC-ê dixebitîne nayê saz kirin, ji ber vê yekê sazkirina databases.mdb li ser mêvandarek navîn ku MS Access hatî saz kirin tête kirin.

Werin em pêwendiyek ODBC-ya pergalê bi servera SQL re biafirînin (divê bitnessa girêdanê bi bitnessa MS Access - 64 an 32 re hevber bike). Ew dikare bi karanîna jêrîn were afirandin:
- Powershell 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

- an bi destan, bi karanîna sêrbazê pêwendiyê:

  1. Amûrên îdarî vekin. Em çavkaniyên daneya ODBC-ê li gorî guhertoya MS Access-a sazkirî hildibijêrin. Herin tabloya Sîstema DSN-ê û pêwendiyek pergalê biafirînin (Add).

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  2. Em destnîşan dikin ku em ê bi servera SQL ve girêbidin. Bikirtînin Finish.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  3. Nav û servera ku hûn pê ve girêdin diyar bikin. Dê pêwendiyek bi heman pîvanan re li ser servera DSC were afirandin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  4. Em destnîşan dikin ku ji bo girêdana bi servera SQL re, em têketinek berê hatî afirandin bi navê DSC bikar tînin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  5. Em databasê di mîhengên pêwendiya DSC de diyar dikin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  6. Bikirtînin Finish.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  7. Berî ku sazkirinê biqedînin, em kontrol dikin ku girêdan dixebite (Çavkaniya Daneyên Testê).

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  8. Çêbû.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

Afirandina databasek devices.mdb di MS Access de. Destpêkirina MS Access-ê û databasek vala ya bi navê devices.mdb biafirînin.

Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  1. Herin tabloya Daneyên Derveyî û li ser Database ODBC bikirtînin. Di pencereya ku xuya dibe de, ji bo girêdana bi çavkaniya daneyê ve tabloyek girêdayî biafirîne hilbijêrin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  2. Di pencereya nû de, tabloya Çavkaniya Daneyên Makîneyê hilbijêrin û OK bikirtînin. Di pencereya nû de, pêbaweran têkevin da ku hûn bi servera SQL ve girêbidin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  3. Tabloyên ku divê werin girêdan hilbijêrin. Qutiya şîfreya hilanînê kontrol bikin û OK bikirtînin. Ji bo her sê tabloyan her car şîfreyê hilînin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  4. Di navnîşan de hûn hewce ne ku jêrîn hilbijêrin:
    - TargetName ji bo tabloya dbo_Devices;

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

    - NodeName an navnîşana IP-ya ji bo dbo_RegistrationData;

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

    - NodeName an navnîşana IP-ya ji bo dbo_StatusReport.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  5. Werin em navên tabloyên di MS Access de biguhezînin, bi vî rengî: pêşgira dbo_ jêbirin da ku DSC bikaribe wan bikar bîne.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  6. Çêbû.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  7. Pelê hilînin û MS Access bigire. Naha em cîhazên ku derketine.mdb li servera DSC-ê kopî dikin (ji hêla xwerû di C de: Program FilesWindowsPowershellDSCService) û ya heyî bi wê re diguhezînin (eger hebe).

Veavakirina Pêşkêşkara DSC-ê ku SQL bikar bîne

  1. Em vegerin ser servera DSC. Ji bo ku bi pelê xweya proxy ve bi servera SQL-ê ve girêbide, werin em pêwendiyek ODBC-ya nû li ser servera DSC-ê biafirînin. Nav, kûrahiya bit, û mîhengên pêwendiyê divê wekî dema çêkirina pelê MDB be. Hûn dikarin cîhazên vala yên jixwe hatine mîheng kirin.mdb ji vir kopî bikin.
  2. Ji bo karanîna cîhazên.mdb, hûn hewce ne ku di web.config ya servera vekişînê ya DSC-ê de guheztinan bikin (pêşniyaz C:inetpubPSDSCPullServerweb.config e):

- ji bo 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;">

- ji bo 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;">

Ev sazkirina servera DSC temam dike.

Kontrolkirina fonksiyona servera DSC

  1. Ka em kontrol bikin ka servera DSC bi gerokek webê ve tê gihîştin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  2. Naha em binihêrin ka servera kişandina DSC rast dixebite. Ji bo vê yekê, modula xPSDesiredStateConfiguration skrîpta pullserversetuptests.ps1 dihewîne. Berî ku hûn vê skrîptê bimeşînin, divê hûn modulek Powershell bi navê Pester saz bikin. Saz bike Install-Module -Name Pester.
  3. C veke: Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<guhertoya modulê>DSCPullServerSetupPullServerDeploymentVerificationTest (di guhertoya nimûneya 8.0.0.0.0 de).

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  4. PullServerSetupTests.ps1 vekin û riya web.config ya servera DSC-ê kontrol bikin. Rêya web.config, ku dê skrîptê kontrol bike, bi sor tê ronî kirin. Ger hewce bike em vê rêyê biguherînin.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  5. pullserversetuptests.ps1 bike
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

  6. Di SQL Management Studio de em dibînin ku mêvandarên birêvebir raporan dişînin servera raporkirina DSC û dane di databasa DSC ya li ser servera SQL de diqede.

    Veavakirin û pelê Dewleta Xwestî ya PowerShell: beş 1. Pêşkêşkara DSC-ê Veavakirin ku bi databasek SQL re bixebite

Navê pêger. Di gotarên jêrîn de ez plan dikim ku ji we re vebêjim ka meriv çawa li ser daneyên hatine bidestxistin raporan ava dike, û ez ê li ser mijarên di derbarê tolerasyona xeletî û mezinbûnê de bisekinim.

Source: www.habr.com

Add a comment