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
Min ev rêbaz dît: ji bo kesên ku Windows Server 2012 û 2016 bikar tînin, hûn dikarin
Nîşe: Ji bo Windows Server 2016 divê hûn bikar bînin
Ez ê di derbarê pêvajoya bicîhkirina serverek vekişînê ya DSC de hûrgulî nekim, ew pir xweş tê rave kirin
-
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).
-
Enable32BitAppOnWin64 = $true
Ger hûn vê guhertinê nekin, hûn ê nikaribin servera AppPool DSC-ê li ser IIS bi WSUS-ê bimeşînin.
- 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
- Ka em databasek SQL ya vala bi navê DSC biafirînin.
- 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.
- Biçe beşa Nexşeya Bikarhêner. Databasê, di vê rewşê de DSC hilbijêrin. Em mafên xwediyê databasê didin.
- Çêbû.
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.
- Ji bo îtxalkirina daneyan, SQL Server Import and Export Wizard bimeşînin.
- Em hilbijêrin ku em ê daneyan ji ku bistînin - di doza me de ew databasek Microsoft Access e. Bikirtînin Next.
- Pelê ku em diagramê jê derdixin hilbijêrin.
- Em destnîşan dikin ku derê tê import kirin - ji bo me ew databasek SQL ye.
- Pêşkêşkara SQL (Navê Pêşkêşkar) û databasa ku em ê daneyan tê de derxînin (DataBase) hilbijêrin.
- Vebijarka Kopîkirina daneyan ji yek an çend tablo an dîmenan hilbijêrin (kopîkirina daneyan ji tablo an dîtinan).
- Em tabloyên ku em ê şemaya databasê ji wan derxînin hilbijêrin.
- Bişkojka Hilbijartina Yekser Bixebitînin û bikirtînin Finish.
- Çêbû.
- Wekî encamek, divê tablo di databasa DSC de xuya bibe.
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ê:
- 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).
- Em destnîşan dikin ku em ê bi servera SQL ve girêbidin. Bikirtînin Finish.
- 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.
- 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.
- Em databasê di mîhengên pêwendiya DSC de diyar dikin.
- Bikirtînin Finish.
- Berî ku sazkirinê biqedînin, em kontrol dikin ku girêdan dixebite (Çavkaniya Daneyên Testê).
- Çêbû.
Afirandina databasek devices.mdb di MS Access de. Destpêkirina MS Access-ê û databasek vala ya bi navê devices.mdb biafirînin.
- 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.
- 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.
- 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.
- Di navnîşan de hûn hewce ne ku jêrîn hilbijêrin:
- TargetName ji bo tabloya dbo_Devices;
- NodeName an navnîşana IP-ya ji bo dbo_RegistrationData;
- NodeName an navnîşana IP-ya ji bo dbo_StatusReport. - 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.
- Çêbû.
- 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
- 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.
- 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
- Ka em kontrol bikin ka servera DSC bi gerokek webê ve tê gihîştin.
- 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.
- C veke: Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<guhertoya modulê>DSCPullServerSetupPullServerDeploymentVerificationTest (di guhertoya nimûneya 8.0.0.0.0 de).
- 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.
- pullserversetuptests.ps1 bike
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - 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.
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