{"id":33576,"date":"2014-08-18T13:00:00","date_gmt":"2014-08-18T10:00:00","guid":{"rendered":"https:\/\/fatihboy.com\/?p=33576"},"modified":"2021-06-18T22:37:35","modified_gmt":"2021-06-18T19:37:35","slug":"desired-state-configuration-yapilandirma-verisi","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/desired-state-configuration-yapilandirma-verisi\/","title":{"rendered":"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi"},"content":{"rendered":"<p>Hat\u0131rlayacak olursan\u0131z <a rel=\"noopener noreferrer\" href=\"\/en\/?p=12573\" target=\"_blank\">\u00f6nceki makale<\/a>yle birlikte Desired State Configuration\u2019a giri\u015f yapm\u0131\u015ft\u0131k. Konunun anla\u015f\u0131lmas\u0131 ad\u0131na \u00f6rnekleri olabildi\u011fince basit tutarak sadece sunucu \u00fczerinde IIS yap\u0131land\u0131rmas\u0131 \u00fczerinden durdum. \u00d6te yandan ger\u00e7ek hayatta yap\u0131land\u0131rmalar\u0131m\u0131z bu kadar basit olmayacakt\u0131r. Ger\u00e7ek sistemlerde birden \u00e7ok yap\u0131land\u0131rma yap\u0131lmas\u0131 gerekecek, birden \u00e7ok role sahip sunucunun bulundu\u011fu parkura sahip olacaks\u0131n\u0131z. Sistem gereksinimleri de\u011fi\u015ftik\u00e7e sunucu parkurunuz da b\u00fcy\u00fcyecektir. Bu durumda \u00f6nceki makalemde payla\u015ft\u0131\u011f\u0131m yakla\u015f\u0131mda i\u015fler biraz kar\u0131\u015fabilir\u2026<\/p>\n\n\n\n<p>&nbsp;B\u00f6ylesi bir kar\u0131\u015f\u0131kl\u0131k DSC tasar\u0131m\u0131 s\u0131ras\u0131nda g\u00f6z \u00f6n\u00fcne al\u0131nm\u0131\u015f ve bu yap\u0131land\u0131rmalar\u0131 olabildi\u011fince basit tutabilmek ad\u0131na sunucu, \u00f6zellik ve rolleri ile bunlara dair yap\u0131land\u0131rmalar\u0131n ayr\u0131labilmesine olanak sunulmu\u015ftur. Bu sayede bir \u015fablon olu\u015fturabilir, bu \u015fablonu farkl\u0131 yap\u0131land\u0131rmalarda kullanabiliriz.<\/p>\n\n\n\n<p>DSC\u2019nin konuya yakla\u015f\u0131m\u0131 olduk\u00e7a basittir; Yap\u0131land\u0131rman\u0131zdaki sunucu, rol v.b. de\u011fi\u015fken bilgiler bir <em>hash table<\/em> i\u00e7erisinde tan\u0131mlanabilir ve bu tan\u0131mlamalar\u0131 yap\u0131land\u0131rman\u0131z i\u00e7erisinde kullanabilirsiniz. DSC i\u00e7erisinde kullanaca\u011f\u0131n\u0131z bu \u00f6zel hash table\u2019\u0131 \u00f6rnek olmas\u0131 ad\u0131na&nbsp; <strong>$ConfigurationData&nbsp; <\/strong>olarak adland\u0131raca\u011f\u0131m; fakat siz herhangi bir ge\u00e7erli de\u011fi\u015fken ad\u0131n\u0131 da kullanabilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  @{\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Olu\u015fturdu\u011fumuz bu hash table i\u00e7erisinde bir ya da daha fazla dizi tan\u0131mlamas\u0131 yapabilirsiniz. Burada dikkat etmeniz gereken tek ayr\u0131nt\u0131 $ConfigData i\u00e7erisinde en az bir adet <strong>$AllNodes<\/strong> ad\u0131yla girdi bulunmas\u0131 zorunlulu\u011fudur;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  @{\n    AllNodes = @(\n    )\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; $AllNodes alt\u0131nda yine hash table\u2019lar ile tan\u0131mlamalar yapabilirsiniz. Bu tan\u0131mlamalar ile ilgili dikkat etmeniz gereken nokta ise her bir hastable i\u00e7erisinde <strong>NodeName<\/strong> girdisiniz mutlaka bulunmas\u0131 gerekti\u011fidir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> $ConfigurationData  = @{\n  AllNodes = @(\n    @{NodeName = 'UygulamaSunucusu1'; Role='Web'}\n  )\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Buraya kadar yapt\u0131\u011f\u0131m\u0131z asl\u0131nda temel d\u00fczeyde anahtar-de\u011fer ikililerini sunuculara atamak. Verdi\u011fim \u00f6rnekte NodeName girdisi d\u0131\u015f\u0131ndakiler yap\u0131land\u0131rmada kullanmad\u0131\u011f\u0131m\u0131z s\u00fcrece DSC taraf\u0131ndan anlamland\u0131r\u0131lmayacakt\u0131r. Olu\u015fturdu\u011fumuz bu yap\u0131land\u0131rma verisini <strong>ConfigurationData<\/strong> parametresi yard\u0131m\u0131yla a\u015fa\u011f\u0131daki \u015fekilde ge\u00e7ebilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{NodeName = 'UygulamaSunucusu1'; Role='Web'}\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {\n    Node $AllNodes.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>&nbsp; \u00d6nceki makaleden devam ederek verdi\u011fim yukar\u0131daki \u00f6rnekte ConfigurationData&nbsp; hash table i\u00e7erisi sistem taraf\u0131ndan yorumlanarak yap\u0131land\u0131rmam\u0131z i\u00e7erisinde kullanabilmemiz sa\u011flanacakt\u0131r. \u00d6rne\u011fimizde, AllNodes i\u00e7erisinde tan\u0131ml\u0131 her bir sunucunun ad\u0131 kullan\u0131l\u0131yor ve bu sunucuda IIS kurulumu ger\u00e7ekle\u015ftiriliyor. \u00d6rneki Node anahtar kelimesinden hemen sonra verdi\u011fim <strong>$AllNodes.NodeName<\/strong> girdisine dikkatinizi \u00e7ekiyorum.<\/p>\n\n\n\n<p>&nbsp;&nbsp; \u015eimdi; \u00f6rne\u011fimizde sisteme yeni bir sunucu daha kat\u0131lacak olursa yap\u0131lmas\u0131 gereken yap\u0131land\u0131rma tan\u0131m\u0131na dokunmadan sadece bu tan\u0131ma ge\u00e7ti\u011fimiz veri \u00fczerinde oynama yapmakta;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{NodeName = 'UygulamaSunucusu1'; Role='Web'},\n    @{NodeName = 'UygulamaSunucusu2'; Role='Web'},\n    @{NodeName = 'UygulamaSunucusu3'; Role='Web'}\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {\n    Node $AllNodes.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>&nbsp; Bu kadar kolay bir \u015fekilde 3 sunucumu web rol\u00fcnde, \u00fczerinden IIS kurulu \u015fekilde yap\u0131land\u0131rm\u0131\u015f oluyorum. Buraya kadar her\u015feyin net oldu\u011funu umar\u0131m.<\/p>\n\n\n\n<p>&nbsp;&nbsp; \u015eimdi s\u0131ra geldi i\u015fleri biraz daha karma\u015f\u0131kla\u015ft\u0131rmaya. \u00d6rne\u011fimize yeni bir sunucu daha ekleyelim. Yeni sunucumuza role olarak web servis sunucusu (<em>WebSrv<\/em>) rol\u00fcn\u00fc atarken \u00f6nceki sunucular\u0131m\u0131z\u0131n rol\u00fcn\u00fc de web uygulama sunucusu (<em>WebApp<\/em>) yapal\u0131m;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{NodeName = 'UygulamaSunucusu1'; Role='WebApp'},\n    @{NodeName = 'UygulamaSunucusu2'; Role='WebApp'},\n    @{NodeName = 'UygulamaSunucusu3'; Role='WebApp'},\n\n    @{NodeName = 'UygulamaSunucusu4'; Role='WebSrv'}\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {\n    Node $AllNodes.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Hen\u00fcz belirtti\u011fimiz role de\u011ferini yap\u0131land\u0131rma tan\u0131m\u0131m\u0131z i\u00e7erisinde kullanmad\u0131\u011f\u0131m\u0131z i\u00e7in DSc t\u00fcm sunucular\u0131m\u0131za IIS\u2019i kuracakt\u0131r. \u00d6te yandan web servis makinemizi bunun d\u0131\u015f\u0131nda tutmak isteseydik a\u015fa\u011f\u0131daki \u015fekilde bir tan\u0131mlama yapmam\u0131z gerekecekti;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{NodeName = 'UygulamaSunucusu1'; Role='WebApp'},\n    @{NodeName = 'UygulamaSunucusu2'; Role='WebApp'},\n    @{NodeName = 'UygulamaSunucusu3'; Role='WebApp'},\n\n    @{NodeName = 'UygulamaSunucusu4'; Role='WebSrv'}\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {\n    Node $AllNodes.Where{$_.Role -eq \"WebApp\"}.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>&nbsp;&nbsp; \u00d6rne\u011fimizde sadece web uygulamala sunucular\u0131 i\u00e7in i\u015flem yapmak istedi\u011fimiz i\u00e7in <strong>Where<\/strong> sorgusu ile <strong>Role<\/strong> \u00f6zelli\u011fi <em>WebApp<\/em> olan Node\u2019lar\u0131 se\u00e7erek i\u015flem yapabildik. \u00d6rne\u011fimizi biraz&nbsp; daha karma\u015f\u0131k hale getirelim;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{NodeName = 'UygulamaSunucusu1'; Role='WebApp'},\n    @{NodeName = 'UygulamaSunucusu2'; Role='WebApp'},\n    @{NodeName = 'UygulamaSunucusu3'; Role='WebApp'},\n\n    @{NodeName = 'UygulamaSunucusu4'; Role='WebSrv'}\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {    \n\n    Import-DscResource -Module xWebAdministration\n\n    Node $AllNodes.Where{$_.Role -eq \"WebApp\"}.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n\n        WindowsFeature AspNet45 {\n            Ensure          = \"Present\"\n            Name            = \"Web-Asp-Net45\"\n        }\n\n        xWebsite DefaultSite {\n            Ensure = \"Present\"\n            Name = \"Default Web Site\"\n            PhysicalPath = \"C:\\inetpub\\wwwroot\"\n            State = \"Stopped\"\n            DependsOn = \"[WindowsFeature]IIS\"\n        }\n\n        File ABCUygulamaIcerigi {\n            Ensure = \"Present\"\n            Type = \"Directory\"\n            SourcePath = \"\\\\KaynakSunucu01\\ABCUygulamasi\"\n            DestinationPath = \"C:\\Uygulamalar\\ABCUygulamasi\"\n            Recurse = $true\n        }\n\n        xWebsite ABCUygulamasi{\n            Ensure = \"Present\"\n            Name = \"ABCUygulamasi\"\n            PhysicalPath = \"C:\\Uygulamalar\\ABCUygulamasi\"\n            State = \"Started\"\n            DependsOn = \"[File]ABCUygulamaIcerigi\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p><strong>Not:<\/strong> \u00d6rne\u011fin \u00e7al\u0131\u015fmas\u0131 i\u00e7in PowerShell Desired State Configuration Resource Kit i\u00e7erisinde yer alan <a href=\"http:\/\/gallery.technet.microsoft.com\/scriptcenter\/xWebAdministration-Module-3c8bb6be\" target=\"_blank\" rel=\"noopener noreferrer\">xWebAdministration Modul\u00fc<\/a>n\u00fcn y\u00fcklenmi\u015f olmas\u0131 gerekmektedir.<\/p>\n\n\n\n<p>Bu sefer IIS kurulumu, Asp.Net yap\u0131land\u0131rmas\u0131 yaparak ard\u0131ndan DefaultWebSite\u2019\u0131 durdurduk. Sonras\u0131nda ABC uygulamam\u0131za ait \\\\KaynakSunucu01\\ABCUygulamasi payla\u015f\u0131m\u0131nda yer alan kodlar\u0131 sunucuda C:\\Uygulamalar\\ABCUygulamasi klas\u00f6r\u00fc alt\u0131na kopyalad\u0131k. Son olarak bu klas\u00f6rdeki dosyalar\u0131 IIS\u2019te 80 portu \u00fczerinden sunduk. T\u00fcm bu i\u015flemler sadece rol\u00fc uygulama sunucusu olan sunucular\u0131m\u0131zda ger\u00e7ekle\u015fecektir.<\/p>\n\n\n\n<p>A\u015fa\u011f\u0131daki \u00f6rnekte yap\u0131land\u0131rmay\u0131 biraz daha dinamik hale getirdi\u011fimizi g\u00f6rebilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{\n        NodeName = 'UygulamaSunucusu1';\n        UygulamaAdi = 'ABCUygulamasi';\n        KaynakKlasor = '\\\\KaynakSunucu01\\ABCUygulamasi';\n        HedefKlasor = 'C:\\Uygulamalar\\ABCUygulamasi'\n    },\n\n    @{\n        NodeName = 'UygulamaSunucusu2';\n        UygulamaAdi = 'ABCUygulamasi';\n        KaynakKlasor = '\\\\KaynakSunucu01\\ABCUygulamasi';\n        HedefKlasor = 'C:\\Uygulamalar\\ABCUygulamasi'\n    },\n\n    @{\n        NodeName = 'UygulamaSunucusu3';\n        UygulamaAdi = 'ABCUygulamasi';\n        KaynakKlasor = '\\\\KaynakSunucu01\\ABCUygulamasi';\n        HedefKlasor = 'C:\\Uygulamalar\\ABCUygulamasi'\n    }\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {    \n\n    Import-DscResource -Module xWebAdministration\n\n    Node $AllNodes.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n\n        WindowsFeature AspNet45 {\n            Ensure          = \"Present\"\n            Name            = \"Web-Asp-Net45\"\n        }\n\n        xWebsite DefaultSite {\n            Ensure = \"Present\"\n            Name = \"Default Web Site\"\n            PhysicalPath = \"C:\\inetpub\\wwwroot\"\n            State = \"Stopped\"\n            DependsOn = \"[WindowsFeature]IIS\"\n        }\n\n        File UygulamaIcerigi {\n            Ensure = \"Present\"\n            Type = \"Directory\"\n            SourcePath = $Node.KaynakKlasor\n            DestinationPath = $Node.HedefKlasor\n            Recurse = $true\n        }\n\n        xWebsite Uygulama{\n            Ensure = \"Present\"\n            Name = $Node.UygulamaAdi\n            PhysicalPath = $Node.HedefKlasor\n            State = \"Started\"\n            DependsOn = \"[File]UygulamaIcerigi\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>\u00d6rne\u011fimizde klas\u00f6r ve uygulama isimlerinin dinamik olarak yap\u0131land\u0131rma verisi i\u00e7erisinde nas\u0131l \u00e7ekildi\u011fine dikkat ediniz. Biraz daha basitle\u015ftirmek istersek;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{\n        NodeName = \"*\";\n        UygulamaAdi = 'ABCUygulamasi';\n        KaynakKlasor = '\\\\KaynakSunucu01\\ABCUygulamasi';\n        HedefKlasor = 'C:\\Uygulamalar\\ABCUygulamasi'\n    },\n\n    @{ NodeName = 'UygulamaSunucusu1'; },\n    @{ NodeName = 'UygulamaSunucusu2'; },\n    @{ NodeName = 'UygulamaSunucusu3'; },\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {\n    Import-DscResource -Module xWebAdministration\n\n    Node $AllNodes.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n\n        WindowsFeature AspNet45 {\n            Ensure          = \"Present\"\n            Name            = \"Web-Asp-Net45\"\n        }\n\n        xWebsite DefaultSite {\n            Ensure = \"Present\"\n            Name = \"Default Web Site\"\n            PhysicalPath = \"C:\\inetpub\\wwwroot\"\n            State = \"Stopped\"\n            DependsOn = \"[WindowsFeature]IIS\"\n        }\n\n        File UygulamaIcerigi {\n            Ensure = \"Present\"\n            Type = \"Directory\"\n            SourcePath = $Node.KaynakKlasor\n            DestinationPath = $Node.HedefKlasor\n            Recurse = $true\n        }\n\n        xWebsite Uygulama{\n            Ensure = \"Present\"\n            Name = $Node.UygulamaAdi\n            PhysicalPath = $Node.HedefKlasor\n            State = \"Started\"\n            DependsOn = \"[File]UygulamaIcerigi\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>Dikkat ederseniz AllNodes alt\u0131ndaki ilk girdi i\u00e7erisinde NodeName olarak <strong>*<\/strong> de\u011feri kullan\u0131lmakta. Bu, belirtilen yap\u0131land\u0131rma verisinin t\u00fcm node\u2019lar i\u00e7in varsay\u0131lan olarak kullan\u0131laca\u011f\u0131 anlam\u0131na gelmektedir.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ConfigurationData  = @{\n  AllNodes = @(\n    @{\n        NodeName = \"UygulamaSunucusu1\";\n        UygulamaAdi = 'ABCUygulamasi';\n        KaynakKlasor = '\\\\KaynakSunucu01\\ABCUygulamasi';\n        HedefKlasor = 'C:\\Uygulamalar\\ABCUygulamasi'\n    },\n\n    @{\n        NodeName = \"UygulamaSunucusu2\";\n        UygulamaAdi = 'ABCServisUygulamasi';\n        KaynakKlasor = '\\\\KaynakSunucu01\\ABCServisUygulamasi';\n        HedefKlasor = 'C:\\Uygulamalar\\ABCServisUygulamasi'\n    },\n  )\n}\n\nConfiguration UygulamaSunucusuVarsayimi {\n    Import-DscResource -Module xWebAdministration\n\n    Node $AllNodes.NodeName {\n        WindowsFeature IIS {\n            Ensure = \"Present\"\n            Name = \"Web-Server\"\n        }\n\n        WindowsFeature AspNet45 {\n            Ensure          = \"Present\"\n            Name            = \"Web-Asp-Net45\"\n        }\n\n        xWebsite DefaultSite {\n            Ensure = \"Present\"\n            Name = \"Default Web Site\"\n            PhysicalPath = \"C:\\inetpub\\wwwroot\"\n            State = \"Stopped\"\n            DependsOn = \"[WindowsFeature]IIS\"\n        }\n\n        File UygulamaIcerigi {\n            Ensure = \"Present\"\n            Type = \"Directory\"\n            SourcePath = $Node.KaynakKlasor\n            DestinationPath = $Node.HedefKlasor\n            Recurse = $true\n        }\n\n        xWebsite Uygulama{\n            Ensure = \"Present\"\n            Name = $Node.UygulamaAdi\n            PhysicalPath = $Node.HedefKlasor\n            State = \"Started\"\n            DependsOn = \"[File]UygulamaIcerigi\"\n        }\n    }\n}\n\nUygulamaSunucusuVarsayimi  \u2013ConfigurationData $ConfigurationData<\/pre>\n\n\n\n<p>Bu \u00f6rne\u011fimizde ise UygulamaSunucusu1 web uygulamam\u0131z\u0131n bar\u0131nd\u0131\u011f\u0131 sunucu, UygulamaSunucusu2 ise web servis uygulamam\u0131z\u0131n bar\u0131nd\u0131\u011f\u0131 sunucu olarak yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r.<\/p>","protected":false},"excerpt":{"rendered":"<p>Hat\u0131rlayacak olursan\u0131z \u00f6nceki makaleyle birlikte Desired State Configuration\u2019a giri\u015f yapm\u0131\u015ft\u0131k. Konunun anla\u015f\u0131lmas\u0131 ad\u0131na \u00f6rnekleri olabildi\u011fince basit tutarak sadece sunucu \u00fczerinde IIS yap\u0131land\u0131rmas\u0131 \u00fczerinden durdum. \u00d6te yandan ger\u00e7ek hayatta yap\u0131land\u0131rmalar\u0131m\u0131z bu kadar basit olmayacakt\u0131r. Ger\u00e7ek sistemlerde birden \u00e7ok yap\u0131land\u0131rma yap\u0131lmas\u0131 gerekecek, birden \u00e7ok role sahip sunucunun bulundu\u011fu parkura sahip olacaks\u0131n\u0131z. Sistem gereksinimleri de\u011fi\u015ftik\u00e7e sunucu parkurunuz da&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/desired-state-configuration-yapilandirma-verisi\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[179,28],"tags":[338,180],"class_list":["post-33576","post","type-post","status-publish","format-standard","hentry","category-devops","category-turkce","tag-desired-state-configuraton","tag-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi - Fatih Boy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihboy.com\/en\/desired-state-configuration-yapilandirma-verisi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"Hat\u0131rlayacak olursan\u0131z \u00f6nceki makaleyle birlikte Desired State Configuration\u2019a giri\u015f yapm\u0131\u015ft\u0131k. Konunun anla\u015f\u0131lmas\u0131 ad\u0131na \u00f6rnekleri olabildi\u011fince basit tutarak sadece sunucu \u00fczerinde IIS yap\u0131land\u0131rmas\u0131 \u00fczerinden durdum. \u00d6te yandan ger\u00e7ek hayatta yap\u0131land\u0131rmalar\u0131m\u0131z bu kadar basit olmayacakt\u0131r. Ger\u00e7ek sistemlerde birden \u00e7ok yap\u0131land\u0131rma yap\u0131lmas\u0131 gerekecek, birden \u00e7ok role sahip sunucunun bulundu\u011fu parkura sahip olacaks\u0131n\u0131z. Sistem gereksinimleri de\u011fi\u015ftik\u00e7e sunucu parkurunuz da...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/desired-state-configuration-yapilandirma-verisi\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-18T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-18T19:37:35+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi\",\"datePublished\":\"2014-08-18T10:00:00+00:00\",\"dateModified\":\"2021-06-18T19:37:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/\"},\"wordCount\":829,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"keywords\":[\"Desired State Configuraton\",\"DevOps\"],\"articleSection\":[\"DevOps\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/\",\"url\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/\",\"name\":\"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"datePublished\":\"2014-08-18T10:00:00+00:00\",\"dateModified\":\"2021-06-18T19:37:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi - Fatih Boy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihboy.com\/en\/desired-state-configuration-yapilandirma-verisi\/","og_locale":"en_US","og_type":"article","og_title":"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi - Fatih Boy","og_description":"Hat\u0131rlayacak olursan\u0131z \u00f6nceki makaleyle birlikte Desired State Configuration\u2019a giri\u015f yapm\u0131\u015ft\u0131k. Konunun anla\u015f\u0131lmas\u0131 ad\u0131na \u00f6rnekleri olabildi\u011fince basit tutarak sadece sunucu \u00fczerinde IIS yap\u0131land\u0131rmas\u0131 \u00fczerinden durdum. \u00d6te yandan ger\u00e7ek hayatta yap\u0131land\u0131rmalar\u0131m\u0131z bu kadar basit olmayacakt\u0131r. Ger\u00e7ek sistemlerde birden \u00e7ok yap\u0131land\u0131rma yap\u0131lmas\u0131 gerekecek, birden \u00e7ok role sahip sunucunun bulundu\u011fu parkura sahip olacaks\u0131n\u0131z. Sistem gereksinimleri de\u011fi\u015ftik\u00e7e sunucu parkurunuz da...Read More","og_url":"https:\/\/fatihboy.com\/en\/desired-state-configuration-yapilandirma-verisi\/","og_site_name":"Fatih Boy","article_published_time":"2014-08-18T10:00:00+00:00","article_modified_time":"2021-06-18T19:37:35+00:00","author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi","datePublished":"2014-08-18T10:00:00+00:00","dateModified":"2021-06-18T19:37:35+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/"},"wordCount":829,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"keywords":["Desired State Configuraton","DevOps"],"articleSection":["DevOps","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/","url":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/","name":"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"datePublished":"2014-08-18T10:00:00+00:00","dateModified":"2021-06-18T19:37:35+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/desired-state-configuration-yapilandirma-verisi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Desired State Configuration \u2013 Yap\u0131land\u0131rma Verisi"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=33576"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33576\/revisions"}],"predecessor-version":[{"id":33577,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33576\/revisions\/33577"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=33576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=33576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=33576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}