只有累積,沒有奇蹟

2019年1月10日 星期四

[PowerShell] 設定 IIS - 建立 Application Pool、WebSite

前言
PowerShell是微軟公司開發的任務自動化和組態管理框架,相信有接觸過 CI / CD 的人都是聽過且用過這工具,今天就來簡單介紹如何使用 PowerShell 來建立 Application Pool 跟 WebSite 的過程

指令說明
輸入指令
相關指令可以參考 WebAdministration
# import module
Import-Module WebAdministration
cd IIS:\AppPools\

# Create WebSite
New-Item IIS:\Sites\DemoWeb -bindings @{protocol="http";bindingInformation=":80:localhost"} -physicalPath D:\Demo\DemoWeb

# Create App pools
New-item IIS:\AppPools\DemoPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value "v4.0"
程式說明 : 
  • Line 2 : 先 Import-Module WebAdministration 載入 IIS 管理模組
  • Line 6 : 使用 New-Item command 建立 WebSite第一個參數是 bindings 的資訊 : localhost  80 port
    第二個參數是應用程式的位置 : D:\Demo\DemoWeb
  • Line 9 : 建立 AppPool
    設定 CLR 為 4.0 以及 Name 為 managedRuntimeVersion
確認結果
在 PowerShell 按下執行,接著輸入以下指令確認是否成功
PS C:\> Get-IISAppPool
PS C:\> Get-Website

還記得之前有提到 [IIS] 如何解決網站第一個請求 Request 特別慢 ? 為了加快 Application 啟動問題,需要在 IIS 設定 preloadEnabled 和 AlwaysRunning為 true,我們希望在建立 AppPool & WebSite 時將這兩個設定加在指令中,讓部署時一致化不用在進到 Server 分別調整

安裝 Application Initialization
PS C:\> $webAppInit = Get-WindowsFeature -Name "Web-AppInit"
Install-WindowsFeature $webAppInit -ErrorAction Stop
新增 WebSite & AppPool 
# Create WebSite
New-Item IIS:\Sites\DemoWeb -Name applicationDefaults.preloadEnabled -Value True

# Create App pools
New-item IIS:\AppPools\DemoPool | Set-ItemProperty -Name "startMode" -Value "AlwaysRunning"

    參考
    powershell-snap-in-creating-web-sites-web-applications-virtual-directories-and-application-pools
    enable-IIS-preloadEnabled-and-AlwaysRunning-using-PowerShell

    0 意見:

    張貼留言

    Copyright © m@rcus 學習筆記 | Powered by Blogger

    Design by Anders Noren | Blogger Theme by NewBloggerThemes.com