PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

PowerShell Desired State Configuration (DSC) сизде жүздөгөн серверлер болгондо операциялык системаны, сервер ролдорун жана тиркемелерин жайылтуу жана конфигурациялоо ишин бир топ жеңилдетет.

Бирок DSC жеринде колдонууда, б.а. MS Azure эмес, бир нече нюанстар бар. Алар, өзгөчө, эгерде уюм чоң (300 жумушчу станция жана серверден) жана контейнерлер дүйнөсүн ача элек болсо байкалат:

  • Системалардын абалы жөнүндө толук отчеттор жок. Эгерде талап кылынган конфигурация кээ бир серверлерде колдонула элек болсо, анда бул отчетторсуз биз бул жөнүндө билбейбиз. Орнотулган отчеттук серверден маалымат алуу абдан кыйын жана көп сандагы хосттор үчүн да көп убакыт талап кылынышы мүмкүн.
  • Масштабдуулук жана каталарга чыдамкайлык жок. Бир катачылыкка чыдамдуу маалымат базасы жана конфигурациялар, модулдар жана каттоо ачкычтары үчүн mof файлдарынын жалпы сактагычы болгон DSC тарткыч веб-серверлеринин фермасын куруу мүмкүн эмес.

Бүгүн мен сизге биринчи көйгөйдү кантип чечүүгө жана отчеттуулук үчүн маалыматтарды алууга болорун айтып берем. Эгер SQL маалымат базасы катары колдонулса, баары жөнөкөй болмок. АЙЫМ убадалар Windows Server 2019да же Windows Server 1803 түзүүдө гана орнотулган колдоо. OleDB провайдери аркылуу маалыматтарды алуу болбойтанткени DSC Server OleDbCommand тарабынан толук колдоого алынбаган аталган параметрди колдонот.

Мен бул ыкманы таптым: Windows Server 2012 жана 2016 колдонгондор үчүн, сиз жасай аласыз күүлөө DSC суроо сервери үчүн сервер катары SQL маалымат базасын колдонуу. Бул үчүн биз кардардын отчетторунан алынган маалыматтарды SQL серверинин маалымат базасына багыттай турган байланышкан таблицалары бар .mdb файлы түрүндө “прокси” түзөбүз.

Эскертүү: Windows Server 2016 үчүн сиз колдонушуңуз керек AccessDatabaseEngine2016x86анткени Microsoft.Jet.OLEDB.4.0 мындан ары колдоого алынбайт.

Мен DSC тартуу серверин жайылтуу процесси жөнүндө майда-чүйдөсүнө чейин айтпай эле коёюн, ал абдан жакшы сүрөттөлгөн бул жерде. Мен бир-эки пунктту гана белгилеп кетейин. Эгерде биз DSC тарткычын WSUS же Kaspersky Security Center менен бир веб-серверге жайгаштырсак, анда конфигурацияны түзүү скриптинде төмөнкү параметрлерди өзгөртүү керек:

  1. UseSecurityBestPractices     = $false

    Болбосо, TLS 1.0 өчүрүлөт жана сиз SQL маалымат базасына туташа албай каласыз. Kaspersky Security Center да иштебейт (маселе Kaspersky Security Center v11де чечилиши керек).

  2. Enable32BitAppOnWin64   = $true

    Эгер бул өзгөртүүнү жасабасаңыз, AppPool DSC серверин WSUS менен IISде иштете албай каласыз.

  3. WSUS менен DSC Server орнотуп жатканда, DSC сайты үчүн статикалык жана динамикалык кэшти өчүрүңүз.

Келгиле, SQL маалымат базасын колдонуу үчүн DSC серверин орнотууга өтөлү.

SQL маалымат базасын түзүү

  1. Келгиле, DSC деген бош SQL маалымат базасын түзөлү.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  2. Келгиле, бул маалымат базасына туташуу үчүн аккаунт түзөлү. Биринчиден, SQL сервери Windows жана SQL эсептеринин аныктыгын текшерүүгө мүмкүндүк берерин текшериңиз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  3. Колдонуучунун картасы бөлүмүнө өтүңүз. Маалыматтар базасын тандаңыз, бул учурда DSC. Биз маалымат базасынын ээсинин укуктарын беребиз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  4. Кереги жок.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

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 ичинде жайгашкан.

  1. Маалыматтарды импорттоо үчүн, SQL Server импорттоо жана экспорттоо устасын иштетиңиз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  2. Биз маалыматты кайдан аларыбызды тандайбыз - биздин учурда бул Microsoft Access маалымат базасы. Next Click.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  3. Диаграмманы импорттоо үчүн файлды тандаңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  4. Биз кайда импорттоо керектигин көрсөтөбүз - биз үчүн бул SQL маалымат базасы.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  5. SQL серверин (Сервердин аты) жана биз маалыматтарды импорттой турган маалымат базасын (DataBase) тандаңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  6. Бир же бир нече таблицалардан же көрүнүштөрдөн маалыматтарды көчүрүү опциясын тандаңыз (таблицалардан же көрүнүштөрдөн маалыматтарды көчүрүү).

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  7. Биз маалымат базасынын схемасын импорттой турган таблицаларды тандайбыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  8. Дароо иштетүү кутучасын белгилеп, "Бүтүрүү" баскычын чыкылдатыңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  9. Кереги жок.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  10. Натыйжада, таблицалар DSC маалымат базасында пайда болушу керек.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

.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

— же кол менен, туташуу устасын колдонуп:

  1. Башкаруу куралдарын ачыңыз. Биз орнотулган MS Access версиясына жараша ODBC маалымат булактарын тандайбыз. Системанын DSN өтмөгүнө өтүп, тутум байланышын түзүңүз (кошуу).

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  2. Биз SQL серверине туташа турганыбызды көрсөтөбүз. Finish дегенди басыңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  3. Туташуу үчүн атты жана серверди көрсөтүңүз. Андан кийин DSC серверинде ошол эле параметрлер менен байланыш түзүлүшү керек болот.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  4. SQL серверине туташуу үчүн биз DSC аты менен мурда түзүлгөн логинди колдонобуз деп көрсөтөбүз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  5. Биз DSC туташуу жөндөөлөрүндө маалымат базасын көрсөтөбүз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  6. Finish дегенди басыңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  7. Орнотууну аяктоодон мурун, байланыш иштеп жатканын текшеребиз (Test Data Source).

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  8. Кереги жок.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

MS Accessде devices.mdb маалымат базасын түзүү. MS Access программасын ишке киргизиңиз жана devices.mdb деп аталган бош маалымат базасын түзүңүз.

PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  1. Тышкы маалыматтар өтмөгүнө барып, ODBC маалымат базасын чыкылдатыңыз. Пайда болгон терезеде маалымат булагына туташуу үчүн Шилтемелүү таблица түзүү тандаңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  2. Жаңы терезеде, Machine Data Source кошумча барагын тандап, OK баскычын чыкылдатыңыз. Жаңы терезеде SQL серверине туташуу үчүн эсептик дайындарды киргизиңиз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  3. Байланыш керек болгон таблицаларды тандаңыз. Сырсөздү сактоо кутучасын белгилеп, OK басыңыз. Бардык үч таблица үчүн ар бир жолу сырсөздү сактаңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  4. Индекстерде төмөнкүлөрдү тандоо керек:
    — dbo_Devices таблицасы үчүн TargetName;

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

    — dbo_RegistrationData үчүн NodeName же IPAddress;

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

    — dbo_StatusReport үчүн NodeName же IPAddress.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  5. MS Accessдеги таблицалардын атын өзгөртөлү, тактап айтканда: DSC аларды колдоно алышы үчүн dbo_ префиксин алып салыңыз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  6. Кереги жок.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  7. Файлды сактап, MS Accessти жабыңыз. Эми биз пайда болгон devices.mdb файлын DSC серверине көчүрөбүз (демейки боюнча C: Program FilesWindowsPowershellDSCService) жана аны менен учурдагыны алмаштырабыз (эгерде ал бар болсо).

SQL колдонуу үчүн DSC серверин конфигурациялоо

  1. Биз DSC серверине кайтабыз. Биздин прокси файлыбыз менен SQL серверине туташуу үчүн DSC серверинде жаңы ODBC байланышын түзөлү. Аты, бит тереңдиги жана туташуу орнотуулары MDB файлын түзүүдөгүдөй болушу керек. Буга чейин конфигурацияланган бош devices.mdb файлын бул жерден көчүрө аласыз.
  2. 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 серверинин иштешин текшерүү

  1. Келгиле, DSC серверине веб-браузер аркылуу кирүүгө мүмкүн экенин текшерип көрөлү.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  2. Эми DSC тартуу сервери туура иштеп жатканын текшерип көрөлү. Бул үчүн, xPSDesiredStateConfiguration модулу pullserversetuptests.ps1 сценарийин камтыйт. Бул сценарийди иштетүүдөн мурун, сиз Pester аттуу Powershell модулун орнотушуңуз керек. Аны орнотуу Install-Module -Name Pester.
  3. Open C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<модуль версиясы>DSCPullServerSetupPullServerDeploymentVerificationTest (мисалы 8.0.0.0.0 версиясында).

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  4. PullServerSetupTests.ps1 ачыңыз жана DSC серверинин web.config жолун текшериңиз. Скриптти текшере турган web.config жолу кызыл түс менен белгиленген. Керек болсо бул жолду өзгөртөбүз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  5. pullserversetuptests.ps1 иштетиңиз
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

  6. SQL Management Studio'до биз башкаруучу хосттор отчетторду DSC отчеттук серверине жөнөтөрүн жана маалыматтар SQL сервериндеги DSC маалымат базасына түшүп турганын көрөбүз.

    PowerShell Каалаган абалынын конфигурациясы жана файлы: 1-бөлүк. SQL маалымат базасы менен иштөө үчүн DSC Pull серверин конфигурациялоо

Баары болду. Кийинки макалаларда мен алынган маалыматтар боюнча отчетторду кантип түзүү керектигин айтып берүүнү пландаштырып жатам жана каталарга чыдамдуулук жана масштабдуулук маселелерине токтолом.

Source: www.habr.com

Комментарий кошуу