
مقدمه
سلام خدمت دوستان عزیز. در این مقاله درباره پیاده سازی DSC و روش پیاده سازی DSC جهت نصب و نگهداری محیط های یکپارچه صحبت می کنیم. امیدوارم مورد استفادتون باشه.
پیاده سازی DSC جهت نصب و نگهداری محیط های یکپارچه
قابلیت DSC یا Windows PowerShell Desired State Configuration یک افزونه برای PowerShell می باشد که ویژگی های زیر را برای مدیریت از راه دور یک یا چند سرور در اختیار مدیر شبکه قرار می دهد. بوسیله DSC می توان اسکریپتهای PowerShell ی را ایجاد نمود، تا بتوان بصورت اتوماتیک نصب ویندوز سرور ۲۰۱۶ را انجام داد.
قابلیت DSC امکانات زیر را در اختیار مدیر شبکه قرار می دهد:
- نصب و حذف Role ها و Feature ها
- مدیریت تنظیمات ریجیستری
- مدیریت فایلها و پوشهها
- مدیریت سرویسها وپردازشها
- مدیریت حسابهای کاربری و گروهها
- مدیریت متغییرهای محیطی
- اجرای اسکریپتهای PowerShell
- نصب و مدیریت پکیج های نرم افزاری msi و exe.
قابلیت DSC این امکان را فراهم میکند تا مدیر شبکه از راه دور به وسیله اسکریپت، تغییراتی را بر روی سرور مقصد انجام دهد. در شکل زیر چگونگی قرارگیری اجرای DSC را مشاهده می نمایید.
شکل زیر قسمتهای DSC را در یک دیدکلی نمایش میدهد.

پیاده سازی DSC
سه قسمت مهم DSC عبارتند از:
❶(Local Configuration Manager (LCM: بعنوان یک عامل (Agent) بر روی سرور مقصد اجرا شده است و وظیفه آن اجرای اسکریپت مدیر شبکه بر روی سرور است.
❷منابع (Resources): در واقع میتوانند یک ماشین مجازی، فایروال یا هر قسمتی از سیستم عامل سرور مقصد باشند.
❸Configuration: شامل فایل های اسکریپتی است که به وسیله آن یک منبع پیکربندی می شود. بعنوان مثال فایل اسکریپتی که تنظیمات فایروال را بطور مداوم بررسی میکند و درصورتیکه فایروال خاموش باشد، آنرا روشن میکند.
حال شما بعنوان یک مدیر شبکه میتوانید مراحل زیر را انجام دهید:
۱- اسکریپتی بنویسید که مداوم سرورها را بررسی کند و در صورت خاموش بودن فایروال سریعا آن را روشن نماید.
۲- بر روی سرورهای مقصد LCM را راه اندازی نمایید.
۳- اسکریپت خود را به تمامی سرورهای شبکه ارسال کنید تا فایروال آنها را بررسی و در صورت خاموش بودن، فایروالشان را روشن نماید.

پیاده سازی DSC جهت نصب و نگهداری محیطهای یکپارچه
یک اسکرپت DSC از قسمتهای زیر تشکیل شده است:
GetScript: از این قطعه کد جهت بازگرداندن وضعیت جاری یک گره استفاده می شود.
Test Script: این قطعه کدتعیین می کند آیا گره آزمایش شده، نیاز به ویرایش دارد یا خیر. همچنین درصورتی که تنظیماتی منقضی شده باشد، جهت اصلاح آن از کد SetScript می توان استفاده نمود.
Setscript: از این قطعه کد جهت ایجاد تنظیمات دلخواه بر روی گره می توان استفاده نمود.
DependsOn: با استفاده از این قطعه کد می توان تعیین کرد که قبلاز اجزای اسکریپت یک Resource بایستی اجرا شود.
شکل کلی یک اسکریپت:
Script [string] #ResourceName { GetScript = [string] SetScript = [string] TestScript = [string] [ Credential = [PSCredential] ] [ DependsOn = [string[]] ] }
مثال: در اینجا مثالی از یک اسکریپت نوشته شده جهت بررسی فایروال اورده شده است:
Configuration FirewallScriptResource { Import-DscResource -ModuleName PSDesiredStateConfiguration Node localhost { Script EnableFirewall { # Must return a hashtable with at least one key # named 'Result' of type String
GetScript = { Return @{ Result = [string]$(netsh advfirewall show allprofiles) } } # Must return a boolean: $true or $false TestScript = { If ((netsh advfirewall show allprofiles) -like "State*off*") { Write-Verbose "One or more firewall profiles are off" Return $false } Else { Write-Verbose "All firewall profiles are on" Return $true } } # Returns nothing SetScript = { Write-Verbose "Setting all firewall profiles to on" netsh advfirewall set allprofiles state on } } } } FirewallScriptResource Start-DscConfiguration -Path .\FirewallScriptResource -Wait -Verbose Get-DscConfiguration
❶ تنظیمات فایروال را بر می گرداند.
❷ وضعیت خاموش بودن فایروال را بررسی کرده و پیغام مناسب را بر می گرداند.
❸ وضعیت فایروال ها را در صورت خاموش بودن به حالت روشن (ON) تغییر می دهد.
نتیجه گیری
خب دوستان درباره آموزش پیاده سازی DSC و روش پیاده سازی DSC صحبت کردیم و تحلیل DSC رو انجام دادیم. امیدوارم که لذت برده باشید. جهت مشاهده بقیه مقاله ها ما را دنبال کنید.
دیدگاهتان را بنویسید