PowerShell Desired State Configuration (DSC) сизде жүздөгөн серверлер болгондо операциялык системаны, сервер ролдорун жана тиркемелерин жайылтуу жана конфигурациялоо ишин бир топ жеңилдетет.
Бирок DSC жеринде колдонууда, б.а. MS Azure эмес, бир нече нюанстар бар. Алар, өзгөчө, эгерде уюм чоң (300 жумушчу станция жана серверден) жана контейнерлер дүйнөсүн ача элек болсо байкалат:
- Системалардын абалы жөнүндө толук отчеттор жок. Эгерде талап кылынган конфигурация кээ бир серверлерде колдонула элек болсо, анда бул отчетторсуз биз бул жөнүндө билбейбиз. Орнотулган отчеттук серверден маалымат алуу абдан кыйын жана көп сандагы хосттор үчүн да көп убакыт талап кылынышы мүмкүн.
- Масштабдуулук жана каталарга чыдамкайлык жок. Бир катачылыкка чыдамдуу маалымат базасы жана конфигурациялар, модулдар жана каттоо ачкычтары үчүн mof файлдарынын жалпы сактагычы болгон DSC тарткыч веб-серверлеринин фермасын куруу мүмкүн эмес.
Бүгүн мен сизге биринчи көйгөйдү кантип чечүүгө жана отчеттуулук үчүн маалыматтарды алууга болорун айтып берем. Эгер SQL маалымат базасы катары колдонулса, баары жөнөкөй болмок. АЙЫМ
Мен бул ыкманы таптым: Windows Server 2012 жана 2016 колдонгондор үчүн, сиз жасай аласыз
Эскертүү: Windows Server 2016 үчүн сиз колдонушуңуз керек
Мен DSC тартуу серверин жайылтуу процесси жөнүндө майда-чүйдөсүнө чейин айтпай эле коёюн, ал абдан жакшы сүрөттөлгөн
-
UseSecurityBestPractices = $false
Болбосо, TLS 1.0 өчүрүлөт жана сиз SQL маалымат базасына туташа албай каласыз. Kaspersky Security Center да иштебейт (маселе Kaspersky Security Center v11де чечилиши керек).
-
Enable32BitAppOnWin64 = $true
Эгер бул өзгөртүүнү жасабасаңыз, AppPool DSC серверин WSUS менен IISде иштете албай каласыз.
- WSUS менен DSC Server орнотуп жатканда, 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 берилиштерин импорттоо устаты аркылуу PSDesiredStateConfiguration PS модулунун бир бөлүгү катары бош devices.mdb дайындарын импорттоо.
Биз менен иштей турган Devices.mdb C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer ичинде жайгашкан.
- Маалыматтарды импорттоо үчүн, SQL Server импорттоо жана экспорттоо устасын иштетиңиз.
- Биз маалыматты кайдан аларыбызды тандайбыз - биздин учурда бул Microsoft Access маалымат базасы. Next Click.
- Диаграмманы импорттоо үчүн файлды тандаңыз.
- Биз кайда импорттоо керектигин көрсөтөбүз - биз үчүн бул SQL маалымат базасы.
- SQL серверин (Сервердин аты) жана биз маалыматтарды импорттой турган маалымат базасын (DataBase) тандаңыз.
- Бир же бир нече таблицалардан же көрүнүштөрдөн маалыматтарды көчүрүү опциясын тандаңыз (таблицалардан же көрүнүштөрдөн маалыматтарды көчүрүү).
- Биз маалымат базасынын схемасын импорттой турган таблицаларды тандайбыз.
- Дароо иштетүү кутучасын белгилеп, "Бүтүрүү" баскычын чыкылдатыңыз.
- Кереги жок.
- Натыйжада, таблицалар DSC маалымат базасында пайда болушу керек.
.mdb “прокси” файлын орнотуу
SQL серверине ODBC байланышын түзүү. MS Access DSC иштеп жаткан серверде орнотулган эмес деп болжолдонууда, ошондуктан 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 дегенди басыңыз.
- Орнотууну аяктоодон мурун, байланыш иштеп жатканын текшеребиз (Test Data Source).
- Кереги жок.
MS Accessде devices.mdb маалымат базасын түзүү. MS Access программасын ишке киргизиңиз жана devices.mdb деп аталган бош маалымат базасын түзүңүз.
- Тышкы маалыматтар өтмөгүнө барып, ODBC маалымат базасын чыкылдатыңыз. Пайда болгон терезеде маалымат булагына туташуу үчүн Шилтемелүү таблица түзүү тандаңыз.
- Жаңы терезеде, Machine Data Source кошумча барагын тандап, OK баскычын чыкылдатыңыз. Жаңы терезеде SQL серверине туташуу үчүн эсептик дайындарды киргизиңиз.
- Байланыш керек болгон таблицаларды тандаңыз. Сырсөздү сактоо кутучасын белгилеп, OK басыңыз. Бардык үч таблица үчүн ар бир жолу сырсөздү сактаңыз.
- Индекстерде төмөнкүлөрдү тандоо керек:
— dbo_Devices таблицасы үчүн TargetName;
— dbo_RegistrationData үчүн NodeName же IPAddress;
— dbo_StatusReport үчүн NodeName же IPAddress. - MS Accessдеги таблицалардын атын өзгөртөлү, тактап айтканда: DSC аларды колдоно алышы үчүн dbo_ префиксин алып салыңыз.
- Кереги жок.
- Файлды сактап, MS Accessти жабыңыз. Эми биз пайда болгон devices.mdb файлын DSC серверине көчүрөбүз (демейки боюнча C: Program FilesWindowsPowershellDSCService) жана аны менен учурдагыны алмаштырабыз (эгерде ал бар болсо).
SQL колдонуу үчүн DSC серверин конфигурациялоо
- Биз 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 -Name Pester.
- Open 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 маалымат базасына түшүп турганын көрөбүз.
Баары болду. Кийинки макалаларда мен алынган маалыматтар боюнча отчетторду кантип түзүү керектигин айтып берүүнү пландаштырып жатам жана каталарга чыдамдуулук жана масштабдуулук маселелерине токтолом.
Source: www.habr.com