PowerShell Desired State Configuration (DSC) нь танд олон зуун сервертэй үед үйлдлийн систем, серверийн үүрэг, програмуудыг байршуулах, тохируулах ажлыг ихээхэн хялбаршуулдаг.
Гэхдээ DSC-г газар дээр нь ашиглах үед, i.e. MS Azure-д биш, хэд хэдэн нюанс байдаг. Байгууллага том (300 ажлын станц, серверээс) бөгөөд контейнерийн ертөнцийг хараахан нээж амжаагүй бол эдгээр нь ялангуяа мэдэгдэхүйц юм.
- Системийн төлөв байдлын талаар бүрэн тайлан байхгүй байна. Хэрэв зарим сервер дээр шаардлагатай тохиргоо хийгдээгүй бол эдгээр тайлангүйгээр бид энэ талаар мэдэхгүй байх болно. Суурилуулсан тайлагнах серверээс мэдээлэл авах нь нэлээд хэцүү бөгөөд олон тооны хостуудын хувьд энэ нь бас удаан хугацаа шаарддаг.
- Өргөтгөх чадвар, алдааг тэсвэрлэх чадвар дутмаг. Ганц гэмтэлд тэсвэртэй мэдээллийн сан, тохиргоо, модуль, бүртгэлийн түлхүүрүүдэд зориулсан mof файлуудын нийтлэг хадгалалттай байх DSC татах вэб серверүүдийн ферм байгуулах боломжгүй юм.
Өнөөдөр би танд эхний асуудлыг хэрхэн шийдэж, тайлагнах өгөгдлийг олж авах талаар хэлэх болно. Хэрэв SQL-ийг мэдээллийн сан болгон ашиглаж чадвал бүх зүйл илүү хялбар байх болно. MS
Би энэ аргыг олсон: Windows Server 2012 болон 2016 ашигладаг хүмүүст та боломжтой
Тайлбар: Windows Server 2016-ийн хувьд та ашиглах ёстой
Би DSC татах серверийг байрлуулах үйл явцын талаар дэлгэрэнгүй ярихгүй, үүнийг маш сайн тайлбарласан болно
-
UseSecurityBestPractices = $false
Үгүй бол TLS 1.0 идэвхгүй болж, та SQL мэдээллийн сантай холбогдох боломжгүй болно. Kaspersky Security Center бас ажиллахгүй (асуудлыг Kaspersky Security Center v11 дээр шийдэх ёстой).
-
Enable32BitAppOnWin64 = $true
Хэрэв та энэ өөрчлөлтийг хийхгүй бол IIS дээр AppPool DSC серверийг WSUS-тай ажиллуулах боломжгүй болно.
- WSUS-тай DSC серверийг суулгахдаа DSC сайтын статик болон динамик кэшийг идэвхгүй болго.
SQL мэдээллийн санг ашиглахын тулд DSC серверийн тохиргоог үргэлжлүүлье.
SQL мэдээллийн сан үүсгэх
- DSC нэртэй хоосон SQL мэдээллийн сан үүсгэцгээе.
- Энэ мэдээллийн санд холбогдохын тулд бүртгэл үүсгэцгээе. Эхлээд SQL сервер нь Windows болон SQL акаунтуудыг баталгаажуулахыг зөвшөөрдөг эсэхийг шалгана уу.
- Хэрэглэгчийн зураглал хэсэг рүү очно уу. Өгөгдлийн санг сонгоно уу, энэ тохиолдолд DSC. Бид мэдээллийн сангийн эзэмшигчийн эрхийг өгдөг.
- Үүнийг хийлээ.
DSC мэдээллийн сангийн схемийг үүсгэх
DSC мэдээллийн сангийн схемийг үүсгэх хоёр арга бий:
- бие даан, 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
- SQL Data Import Wizard-ээр дамжуулан PSDesiredStateConfiguration PS модулийн нэг хэсэг болгон хоосон devices.mdb-ээс өгөгдлийг импортлох.
Бидний ажиллах Devices.mdb нь C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer дотор байрладаг.
- Өгөгдөл импортлохын тулд SQL Server Импорт, Экспортын хөтөчийг ажиллуулна уу.
- Бид өгөгдлийг хаанаас авахаа сонгодог - бидний тохиолдолд энэ нь Microsoft Access мэдээллийн сан юм. Дараа нь дарна уу.
- Диаграмыг импортлох файлыг сонгоно уу.
- Бид хаана импортлохыг зааж өгдөг - бидний хувьд энэ нь SQL мэдээллийн сан юм.
- SQL сервер (Серверийн нэр) болон өгөгдөл импортлох мэдээллийн санг (DataBase) сонгоно уу.
- Нэг буюу хэд хэдэн хүснэгт эсвэл харагдацаас өгөгдлийг хуулах (хүснэгт эсвэл харагдацаас өгөгдлийг хуулах) сонголтыг сонгоно уу.
- Бид мэдээллийн сангийн схемийг импортлох хүснэгтүүдийг сонгоно.
- "Шууд ажиллуул" гэсэн нүдийг сонгоод Finish дээр дарна уу.
- Үүнийг хийлээ.
- Үүний үр дүнд хүснэгтүүд DSC мэдээллийн санд гарч ирэх ёстой.
.mdb "прокси" файлыг тохируулж байна
SQL сервертэй ODBC холболт үүсгэх. DSC ажиллаж байгаа сервер дээр MS Access суулгаагүй гэж үздэг тул databases.mdb-г тохируулах нь MS Access суулгасан завсрын хост дээр хийгддэг.
SQL сервертэй системийн ODBC холболт үүсгэцгээе (холболтын бит нь MS Access-ийн бит - 64 эсвэл 32-той тохирч байх ёстой). Үүнийг ашиглан үүсгэж болно:
- Powershell команд:
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
— эсвэл холболтын мастерыг ашиглан гараар:
- Захиргааны хэрэгслийг нээнэ үү. Бид суулгасан MS Access-ийн хувилбараас хамааран ODBC мэдээллийн эх сурвалжийг сонгоно. Системийн DSN таб руу очиж системийн холболт үүсгэнэ үү (Нэмэх).
- Бид SQL серверт холбогдох болно гэдгээ илэрхийлж байна. Finish дээр дарна уу.
- Холбох нэр болон серверээ зааж өгнө үү. Дараа нь DSC сервер дээр ижил параметртэй холболт үүсгэх шаардлагатай болно.
- Бид SQL серверт холбогдохын тулд DSC нэртэй өмнө нь үүсгэсэн нэвтрэлт ашигладаг болохыг харуулж байна.
- Бид мэдээллийн баазыг DSC холболтын тохиргоонд зааж өгдөг.
- Finish дээр дарна уу.
- Тохиргоог дуусгахын өмнө бид холболт ажиллаж байгаа эсэхийг шалгана (Тестийн мэдээллийн эх сурвалж).
- Үүнийг хийлээ.
MS Access дээр devices.mdb мэдээллийн сан үүсгэх. MS Access програмыг ажиллуулаад devices.mdb нэртэй хоосон мэдээллийн сан үүсгэнэ.
- Гадаад мэдээллийн таб руу очоод ODBC мэдээллийн сан дээр дарна уу. Гарч ирэх цонхноос өгөгдлийн эх сурвалжтай холбогдохын тулд Холбоостой хүснэгт үүсгэхийг сонгоно уу.
- Шинэ цонхонд Машины мэдээллийн эх сурвалж табыг сонгоод OK дарна уу. Шинэ цонхонд SQL серверт холбогдохын тулд итгэмжлэлүүдийг оруулна уу.
- Холбох шаардлагатай хүснэгтүүдийг сонгоно уу. Нууц үг хадгалах нүдийг сонгоод OK дарна уу. Бүх гурван хүснэгтэд нууц үгээ хадгал.
- Индексүүдээс та дараахь зүйлийг сонгох хэрэгтэй.
— dbo_Devices хүснэгтийн TargetName;
— dbo_RegistrationData-д зориулсан NodeName эсвэл IPAddress;
— dbo_StatusReport-д зориулсан NodeName эсвэл IPAddress. - MS Access дээрх хүснэгтүүдийн нэрийг өөрчилье, тухайлбал: dbo_ угтварыг устгаснаар DSC тэдгээрийг ашиглах боломжтой болно.
- Үүнийг хийлээ.
- Файлыг хадгалаад MS Access-ийг хаа. Одоо бид үүссэн devices.mdb-г DSC сервер рүү хуулж (анхдагчаар C: Program FilesWindowsPowershellDSCService) одоо байгаа нэгийг нь (хэрэв байгаа бол) солино.
DSC серверийг SQL ашиглахаар тохируулж байна
- Бид DSC сервер рүү буцна. Манай прокси файлаар SQL серверт холбогдохын тулд DSC сервер дээр шинэ ODBC холболт үүсгэцгээе. Нэр, битийн гүн, холболтын тохиргоо нь MDB файлыг үүсгэхтэй ижил байх ёстой. Та эндээс тохируулсан хоосон devices.mdb-г хуулж болно.
- devices.mdb-г ашиглахын тулд та DSC татах серверийн web.config-д өөрчлөлт оруулах шаардлагатай (өгөгдмөл нь C:inetpubPSDSCPullServerweb.config):
- 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;">
- 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;">
Энэ нь DSC серверийн тохиргоог дуусгана.
DSC серверийн ажиллагааг шалгаж байна
- DSC серверт вэб хөтчөөр нэвтрэх боломжтой эсэхийг шалгацгаая.
- Одоо DSC татах сервер зөв ажиллаж байгаа эсэхийг шалгацгаая. Үүнийг хийхийн тулд xPSDesiredStateConfiguration модуль нь pullserversetuptests.ps1 скриптийг агуулдаг. Энэ скриптийг ажиллуулахын өмнө та Pester нэртэй Powershell модулийг суулгах ёстой. Үүнийг суулгана уу Install-Module -Нэр Pester.
- C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<модуль хувилбар>DSCPullServerSetupPullServerDeploymentVerificationTest-ийг нээнэ үү (жишээ нь 8.0.0.0.0 хувилбар дээр).
- PullServerSetupTests.ps1-г нээж, DSC серверийн web.config руу очих замыг шалгана уу. Скриптийг шалгах web.config замыг улаанаар тодруулсан. Шаардлагатай бол бид энэ замыг өөрчилнө.
- pullserversetuptests.ps1-г ажиллуул
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - SQL Management Studio дээр бид удирддаг хостууд DSC тайлангийн сервер рүү тайлан илгээж, өгөгдөл нь SQL сервер дээрх DSC мэдээллийн санд дуусдаг болохыг харж байна.
Тэгээд л болоо. Дараах нийтлэлүүдэд би олж авсан өгөгдлөөр хэрхэн тайлан гаргах талаар танд хэлэхээр төлөвлөж байгаа бөгөөд алдааны тэсвэрлэх чадвар, өргөтгөх чадварын талаархи асуудлуудыг хөндөх болно.
Эх сурвалж: www.habr.com