PowerShell Desired State Configuration (DSC) آپریٹنگ سسٹم، سرور کے کردار، اور ایپلیکیشنز کو تعینات کرنے اور ترتیب دینے کے کام کو بہت آسان بناتا ہے جب آپ کے پاس سینکڑوں سرور ہوتے ہیں۔
لیکن DSC آن پریمیسس استعمال کرتے وقت، یعنی MS Azure میں نہیں، چند باریکیاں ہیں۔ وہ خاص طور پر قابل توجہ ہیں اگر تنظیم بڑی ہے (300 ورک سٹیشنز اور سرورز سے) اور اس نے ابھی تک کنٹینرز کی دنیا دریافت نہیں کی ہے:
- سسٹمز کی حالت کے بارے میں کوئی مکمل رپورٹ نہیں ہے۔ اگر مطلوبہ ترتیب کچھ سرورز پر لاگو نہیں کی گئی ہے، تو ان رپورٹس کے بغیر ہم اس کے بارے میں نہیں جان پائیں گے۔ بلٹ ان رپورٹنگ سرور سے معلومات حاصل کرنا کافی مشکل ہے، اور میزبانوں کی ایک بڑی تعداد کے لیے اس میں کافی وقت بھی لگ سکتا ہے۔
- اسکیل ایبلٹی اور غلطی رواداری کا فقدان ہے۔ ڈی ایس سی پل ویب سرورز کا فارم بنانا ناممکن ہے جس میں ایک ہی غلطی برداشت کرنے والا ڈیٹا بیس اور کنفیگریشنز، ماڈیولز اور رجسٹریشن کیز کے لیے ایم او ایف فائلوں کا مشترکہ ذخیرہ ہو۔
آج میں آپ کو بتاؤں گا کہ آپ کس طرح پہلا مسئلہ حل کر سکتے ہیں اور رپورٹنگ کے لیے ڈیٹا حاصل کر سکتے ہیں۔ اگر SQL کو ڈیٹا بیس کے طور پر استعمال کیا جا سکتا ہے تو سب کچھ آسان ہو جائے گا۔ MS
مجھے یہ طریقہ ملا: ان لوگوں کے لیے جو ونڈوز سرور 2012 اور 2016 استعمال کرتے ہیں، آپ کر سکتے ہیں۔
نوٹ: ونڈوز سرور 2016 کے لیے آپ کو استعمال کرنا چاہیے۔
میں DSC پل سرور کی تعیناتی کے عمل کے بارے میں تفصیل میں نہیں جاؤں گا، یہ بہت اچھی طرح سے بیان کیا گیا ہے۔
-
UseSecurityBestPractices = $false
بصورت دیگر، TLS 1.0 غیر فعال ہو جائے گا اور آپ SQL ڈیٹا بیس سے رابطہ نہیں کر سکیں گے۔ Kaspersky Security Center بھی کام نہیں کرے گا (مسئلہ Kaspersky Security Center v11 میں حل ہونا چاہیے)۔
-
Enable32BitAppOnWin64 = $true
اگر آپ یہ تبدیلی نہیں کرتے ہیں، تو آپ WSUS کے ساتھ IIS پر AppPool DSC سرور نہیں چلا سکیں گے۔
- WSUS کے ساتھ DSC سرور انسٹال کرتے وقت، DSC سائٹ کے لیے جامد اور متحرک کیشنگ کو غیر فعال کریں۔
آئیے ایس کیو ایل ڈیٹا بیس کو استعمال کرنے کے لیے DSC سرور کو ترتیب دینے کی طرف بڑھتے ہیں۔
ایس کیو ایل ڈیٹا بیس بنانا
- آئیے ڈی ایس سی کے نام سے ایک خالی 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
- ایس کیو ایل ڈیٹا امپورٹ وزرڈ کے ذریعے PS ماڈیول PSDesiredStateConfiguration کے حصے کے طور پر خالی devices.mdb سے ڈیٹا درآمد کریں۔
ہم جس Devices.mdb کے ساتھ کام کریں گے وہ C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer میں واقع ہے۔
- ڈیٹا امپورٹ کرنے کے لیے، ایس کیو ایل سرور امپورٹ اینڈ ایکسپورٹ وزرڈ چلائیں۔
- ہم انتخاب کرتے ہیں کہ ہمیں ڈیٹا کہاں سے ملے گا - ہمارے معاملے میں یہ ایک Microsoft Access ڈیٹا بیس ہے۔ اگلا پر کلک کریں۔
- وہ فائل منتخب کریں جس سے ہم ڈایاگرام درآمد کرتے ہیں۔
- ہم بتاتے ہیں کہ کہاں درآمد کرنا ہے - ہمارے لیے یہ ایک SQL ڈیٹا بیس ہے۔
- ایس کیو ایل سرور (سرور کا نام) اور ڈیٹا بیس کو منتخب کریں جس میں ہم ڈیٹا (ڈیٹا بیس) درآمد کریں گے۔
- ایک یا زیادہ ٹیبلز یا ویوز سے ڈیٹا کاپی کریں کا آپشن منتخب کریں (ٹیبلز یا ویوز سے ڈیٹا کاپی کرنا)۔
- ہم ان ٹیبلز کو منتخب کرتے ہیں جہاں سے ہم ڈیٹا بیس اسکیما کو درآمد کریں گے۔
- فوری طور پر چلائیں چیک باکس کو چیک کریں اور ختم پر کلک کریں۔
- ہو گیا
- نتیجے کے طور پر، میزیں DSC ڈیٹا بیس میں ظاہر ہونی چاہئیں۔
ایک .mdb "proxy" فائل ترتیب دینا
ایس کیو ایل سرور سے ODBC کنکشن بنانا۔ یہ فرض کیا جاتا ہے کہ DSC چلانے والے سرور پر MS Access انسٹال نہیں ہے، لہذا databases.mdb سیٹ اپ ایک انٹرمیڈیٹ ہوسٹ پر کیا جاتا ہے جس میں MS Access انسٹال ہو۔
آئیے ایس کیو ایل سرور سے ایک سسٹم ODBC کنکشن بنائیں (کنکشن بٹنس MS Access bitness - 64 یا 32 سے مماثل ہونا چاہیے)۔ یہ استعمال کرتے ہوئے بنایا جا سکتا ہے:
- پاورشیل 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
- یا دستی طور پر، کنکشن وزرڈ کا استعمال کرتے ہوئے:
- انتظامی ٹولز کھولیں۔ ہم انسٹال کردہ MS رسائی کے ورژن کی بنیاد پر ODBC ڈیٹا کے ذرائع کا انتخاب کرتے ہیں۔ سسٹم ڈی ایس این ٹیب پر جائیں اور سسٹم کنکشن بنائیں (شامل کریں)۔
- ہم اشارہ کرتے ہیں کہ ہم SQL سرور سے جڑیں گے۔ ختم پر کلک کریں۔
- کنیکٹ کرنے کے لیے نام اور سرور کی وضاحت کریں۔ پھر DSC سرور پر انہی پیرامیٹرز کے ساتھ ایک کنکشن بنانے کی ضرورت ہوگی۔
- ہم اشارہ کرتے ہیں کہ SQL سرور سے جڑنے کے لیے، ہم DSC نام کے ساتھ پہلے سے بنایا ہوا لاگ ان استعمال کرتے ہیں۔
- ہم DSC کنکشن کی ترتیبات میں ڈیٹا بیس کی وضاحت کرتے ہیں۔
- ختم پر کلک کریں۔
- سیٹ اپ مکمل کرنے سے پہلے، ہم چیک کرتے ہیں کہ کنکشن کام کر رہا ہے (ٹیسٹ ڈیٹا سورس)۔
- ہو گیا
MS رسائی میں devices.mdb ڈیٹا بیس بنانا۔ MS رسائی شروع کریں اور ایک خالی ڈیٹا بیس بنائیں جس کا نام devices.mdb ہے۔
- بیرونی ڈیٹا ٹیب پر جائیں اور ODBC ڈیٹا بیس پر کلک کریں۔ ظاہر ہونے والی ونڈو میں، ڈیٹا سورس سے منسلک ہونے کے لیے ایک لنک شدہ ٹیبل بنائیں کو منتخب کریں۔
- نئی ونڈو میں، مشین ڈیٹا سورس ٹیب کو منتخب کریں اور ٹھیک پر کلک کریں۔ نئی ونڈو میں، ایس کیو ایل سرور سے منسلک ہونے کے لیے اسناد درج کریں۔
- ان ٹیبلز کو منتخب کریں جنہیں لنک کرنے کی ضرورت ہے۔ پاس ورڈ محفوظ کریں باکس کو چیک کریں اور ٹھیک ہے پر کلک کریں۔ تینوں ٹیبلز کے لیے ہر بار پاس ورڈ محفوظ کریں۔
- اشاریہ جات میں آپ کو درج ذیل کو منتخب کرنے کی ضرورت ہے:
— dbo_Devices ٹیبل کے لیے TargetName؛
- dbo_RegistrationData کے لیے NodeName یا IPaddress؛
dbo_StatusReport کے لیے نوڈ نام یا آئی پی ایڈریس۔ - آئیے MS Access میں ٹیبلز کا نام تبدیل کریں، یعنی: dbo_ prefix کو ہٹا دیں تاکہ DSC انہیں استعمال کر سکے۔
- ہو گیا
- فائل کو محفوظ کریں اور MS رسائی بند کریں۔ اب ہم نتیجے میں آنے والے devices.mdb کو DSC سرور پر کاپی کرتے ہیں (بطور ڈیفالٹ C: Program FilesWindowsPowershellDSCService میں) اور موجودہ والی کو اس سے بدل دیتے ہیں (اگر یہ موجود ہے)۔
SQL استعمال کرنے کے لیے DSC سرور کو ترتیب دینا
- ہم DSC سرور پر واپس آتے ہیں۔ اپنی پراکسی فائل کے ساتھ SQL سرور سے جڑنے کے لیے، آئیے DSC سرور پر ایک نیا ODBC کنکشن بنائیں۔ نام، تھوڑا سا گہرائی، اور کنکشن کی ترتیبات MDB فائل بناتے وقت وہی ہونی چاہئیں۔ آپ یہاں سے پہلے سے ترتیب شدہ خالی devices.mdb کو کاپی کر سکتے ہیں۔
- devices.mdb استعمال کرنے کے لیے، آپ کو DSC پل سرور کے web.config میں تبدیلیاں کرنے کی ضرورت ہے (ڈیفالٹ C:inetpubPSDSCPullServerweb.config ہے):
- ونڈوز سرور 2012 کے لیے
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
- ونڈوز سرور 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 ماڈیول میں pullserverversetuptests.ps1 اسکرپٹ شامل ہے۔ اس اسکرپٹ کو چلانے سے پہلے، آپ کو پیسٹر نام کا پاورشیل ماڈیول انسٹال کرنا ہوگا۔ اسے انسٹال کریں Install-Module -Name Pester.
- کھولیں C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (مثال کے ورژن 8.0.0.0.0 میں)۔
- PullServerSetupTests.ps1 کھولیں اور DSC سرور کے web.config کا راستہ چیک کریں۔ web.config کا راستہ، جو اسکرپٹ کو چیک کرے گا، سرخ رنگ میں نمایاں کیا گیا ہے۔ اگر ضروری ہو تو ہم اس راستے کو بدل دیتے ہیں۔
- pullserverversetuptests.ps1 چلائیں۔
Invoke-Pester.PullServerSetupTests.ps1
работает работает. - ایس کیو ایل مینجمنٹ اسٹوڈیو میں ہم دیکھتے ہیں کہ زیر انتظام میزبان DSC رپورٹنگ سرور کو رپورٹیں بھیجتے ہیں اور ڈیٹا SQL سرور پر DSC ڈیٹا بیس میں ختم ہوتا ہے۔
بس۔ مندرجہ ذیل مضامین میں میں آپ کو یہ بتانے کا ارادہ رکھتا ہوں کہ حاصل کردہ ڈیٹا پر رپورٹس کیسے بنائیں، اور میں فالٹ ٹولرنس اور اسکیل ایبلٹی کے مسائل پر بات کروں گا۔
ماخذ: www.habr.com