预备: 系统必须超越等于windows二零一零 奥迪Q52 种类 晋级 PowerShell至3.0 安装iis
安装net
IIS 7 提供了一个新的一声令下行工具 Appcmd.exe,可以采纳该工具来布置和询问
Web 服务器上的目的,并以文本或 XML 格式再次来到输出。 下边是一对得以应用
Appcmd.exe 实现的义务的亲自过问:
•创立和配备站点、应用程序、应用程序池和设想目录。
在IIS7+上导出全体应用程序池的法子:
%windir%/system32/inetsrv/appcmd list apppool /config /xml >
c:/apppools.xml
这一个命令会将服务器上全方位的运用程序池都导出来,但有个别大家是大家无需的,要将她们删掉.举个例子:
DefaultAppPool
Classic .Net AppPool
假设在导入时发掘同名的利用程序池已经存在,那么导入就能战败.
导入应用程序池的办法:
%windir%/system32/inetsrv/appcmd add apppool /in < c:/apppools.xml
诸如此比就能够将整个的使用程序池都导入到另二个服务器中了.
导出全部站点的艺术:
%windir%/system32/inetsrv/appcmd list site /config /xml >
c:/sites.xml
一样,我们供给编写制定sites.xml文件删除没有须求的站点.如:
Default Website
导入站点的办法:
%windir%/system32/inetsrv/appcmd add site /in < c:/sites.xml
迄今,导入工作到位了,看看两台服务器的IIS配置同样了吧.
另外,介绍下独自导出导入二个站点的不二诀窍
导出单独使用程序池:
%windir%/system32/inetsrv/appcmd list apppool “应用程序池名称” /config
/xml > c:/myapppool.xml
青黄字体的正是要导出的选拔程序池名称
导入单独使用程序池:
%windir%/system32/inetsrv/appcmd add apppool /in <
c:/myapppool.xml
导出单独站点:
%windir%/system32/inetsrv/appcmd list site “站点名称” /config /xml >
c:/mywebsite.xml
青黑字体的就是要导出的站点名称
导入单独站点:
%windir%/system32/inetsrv/appcmd add site /in < c:/cnziben.com.xml
资料来自:
ansible调节台目录结构
.
├── hosts #ansible 寄放客户机IP
├── roles
│ └── web
│ ├── files
│ │ └── web.ps1 # 创建iis站点ps脚本
│ └── tasks
│ └── main.yml #ansible 调节脚本
└── web.yml # ansible 调用脚本
•甘休和运营站点。
web.yml 文件表明
•运营、停止和回收利用程序池。
- hosts: ‘{{ host }}’ # 客户机hosts文件节点名字
vars:
sitePort: 9002 # 端口号 创制网址用到产生会复位80端口
SiteName: default # 网址应用程序池名字
SiteAppPoolsModel: Integrated # 托管管道情势 Classic
、Integrated
managedRuntimeVersion: v4.0 # net版本号
WebSitePath: D:\default # 网址数据存放地点
HostHeader1: # 第一web访问域名
HostHeader2: # 第3个访谈域名
defaultDocument: index.html #暗中同意主页
IISLogFile: d:\LogFiles # web网址日志贮存地方
net32Or64: false # 是还是不是展开32情势帮衬 六十六个人系统使用 True、false
roles:
– web # ansible 试行标签
•查看有关在 Web 服务器上运维的干活历程和伸手的音信。
一些经历:导出配置文件后,提出展开看看,假设有亟待调动的急需做修改。
main.yml 文件内容表明
Appcmd.exe
为左近的询问和安顿职责提供了长久以来的授命,进而减弱了就学语法的复杂。
举例,您能够行使 list 命令来查究有关对象(如应用程序)的新闻,也足以动用
add 命令来创制对象(如站点)。
除此以外,您还是能将指令组合在同步使用,以回到与 Web
服务器上对象相关的愈发复杂的数码,或试行尤其复杂的职责。
比如,您能够实现临近如下职责的繁杂职责:截止全数具备运转时刻抢先六十秒的乞求的站点。
在IIS7+上导出全体应用程序池的秘诀:
%windir%/system32/inetsrv/appcmd
list apppool /config /xml > c:/apppools.xml
- name: install web site
script: web.ps1 {{sitePort}} {{SiteName}} {{SiteAppPoolsModel}}
{{managedRuntimeVersion}} {{WebSitePath}} {{HostHeader1}}
{{HostHeader2}} {{defaultDocument}} {{IISLogFile}} {{net32Or64}} #
客户机执行脚本及给脚本传参数
#参数 {{sitePort}} web端口号 能够暗许
# {{SiteName}} # 网址应用程序池名字
# {{SiteAppPoolsModel}} 托管管道形式 Classic 、Integrated
能够布署私下认可
# {{managedRuntimeVersion}} net版本号 能够配备暗中认可
# {{WebSitePath}} 网站数据贮存地点
# {{HostHeader1}} 第一web访问域名
# {{HostHeader2}} 第二个访谈域名 默许没展开
# {{defaultDocument}} 默许主页
# {{IISLogFile}} web网址日志贮存地方 能够布署成暗中认可值
# {{net32Or64}} 是或不是展开32格局帮衬 陆九位系统应用 能够配备成暗中同意
AppCmd.exe工具所在目录 C:\全新管理工科具AppCmd,利用Ansible批量创制IIS站点。windows\sytstem32\inetsrv\目录下
本条命令会将服务器上一切的选择程序池都导出来,但有一些大家是大家不必要的,要将她们删掉.比如:
DefaultAppPool
Classic
.Net AppPool
倘若在导入时开掘同名的使用程序池已经存在,那么导入就能够战败.
web.ps1 文件内容表明
#
************************************************************
# * *
# * Powershell铺排web站点脚本 *
#澳门金沙国际, * *
#
************************************************************
#set-executionpolicy remotesigned
# 创立IIS站点所用参数
#################################################################################################
#参数注解
param($a,$b,$c,$d,$e,$f,$g,$h,$i,$j)
$sitePort = $a #端口
$SiteName = “$b” #站点名
$SiteAppPools = $SiteName #进度池名
$SiteAppPoolsModel = “$c” #进度池使用通道方式
$AppPoolType = “ApplicationPoolIdentity”
#点名应用程序池要接纳的帐户标识(0 >Local Service 1 >Local
System 2 >Network Service 3 >User 4
>ApplicationPoolIdentity)
$managedRuntimeVersion = “$d” #.net版本
$WebSitePath = “$e” #站点程序路线
$HostHeader1 = “$f” #绑定站点域名
$HostHeader2 = “$g” #绑定站点域名
$defaultDocument = “$h”
$IISLogFile = “$i\$SiteName” #IIS日志路线
$net32Or64 = $j #是不是启用.net32情势
#################################################################################################
Import-Module WebAdministration #导入IIS模块
#创办IIS应用程序池
function BuildAppPool(){
$AppPool = “iis:\AppPools\” + $SiteAppPools
$existAppPool = Test-Path $AppPool
if($existAppPool -eq $false){
#创制应用程序池
.$Env:windir\system32\inetsrv\appcmd.exe add apppool
/name:$SiteAppPools /managedRuntimeVersion:$managedRuntimeVersion
/managedPipelineMode:$SiteAppPoolsModel
#点名应用程序池要选用的帐户标识
.$Env:windir\system32\inetsrv\appcmd.exe set config
/section:applicationPools
/[name=”‘$SiteAppPools'”].processModel.identityType:$AppPoolType
#安装使用程序池使用.net版本
.$Env:windir\system32\inetsrv\appcmd.exe add apppool
/name:$SiteAppPools /managedRuntimeVersion:$managedRuntimeVersion
/managedPipelineMode:$SiteAppPoolsModel
#限制进度使用内部存款和储蓄器上限为1.5G
.$Env:windir\system32\inetsrv\appcmd.exe set config
/section:applicationPools
/[name=”‘$SiteAppPools'”].recycling.periodicRestart.privateMemory:1572864
#钦定进度固定回收时间
.$Env:windir\system32\inetsrv\appcmd.exe set apppool
/apppool.name: $SiteAppPools
/recycling.periodicRestart.time:1.00:00:00
#启用.net32模式
.$Env:windir\system32\inetsrv\appcmd.exe set config
/section:applicationPools
/[name=”‘$SiteAppPools'”].enable32BitAppOnWin64:$net32Or64
#是或不是自动运维
.$Env:windir\system32\inetsrv\appcmd.exe set config
/section:applicationPools /[name=”‘$SiteAppPools'”].autoStart:$true
}
}
#创办IIS应用站点
function BuildSite(){
$appSitePath = “iis:\sites\”+$SiteName
$existweb = Test-Path $appSitePath
if(!$existweb)
{
New-Website -name $SiteName -port $sitePort -ApplicationPool
$SiteAppPools -PhysicalPath $WebSitePath
.$Env:windir\system32\inetsrv\appcmd.exe set site $SiteName
/bindings:”http/*:80:$HostHeader1″ # 私下认可张开五个域名加80端口
暗许全数IP
#.$Env:windir\system32\inetsrv\appcmd.exe set site $SiteName
/bindings:”http/*:80:$HostHeader1,http/*:80:$HostHeader2″ #
能够增进多域名访谈通一个网址 重新恢复设置暗中认可端口80
# New-WebBinding -Name $SiteName -IPAddress “*” -Port $sitePort
-HostHeader $HostHeader1 # 端口号加域名访谈 依据实情修改
.$Env:windir\system32\inetsrv\appcmd.exe set config
/section:directoryBrowse /enabled:false
}
else{
echo “‘$SiteName’ is Already exists”
}
}
#设置IIS日志记录路线
function CreatIISLogFile(){
.$Env:windir\system32\inetsrv\appcmd.exe set site $SiteName
“-logfile.directory:$IISLogFile”
}
function RunBuild(){
BuildAppPool
BuildSite
CreatIISLogFile
.$Env:windir\system32\inetsrv\appcmd.exe start site $SiteName
}
RunBuild
应用命令行管理IIS
7.0时,须要动用IIS7.0提供的全新处理工具AppCmd.exe。AppCmd.exe工具得以做到web服务器的全不管理专门的学业。利用AppCmd.exe工具,不仅能够通过命令行提醒到位挂历专门的学问,也得以经过脚本完成处总管业。利用AppCmd.exe工具,能够产生以下专门的工作:
导入应用程序池的点子:
%windir%/system32/inetsrv/appcmd
add apppool /in < c:/apppools.xml
运用格局
1、能够流传全部参数
ansible-playbook -i hosts web.yml -verbose –extra-vars “host=test
sitePort=9002 SiteName=ttyykk SiteAppPoolsModel=Integrated
managedRuntimeVersion=v4.0 WebSitePath=D:\werwerw
HostHeader1=www.qkaxml.com defaultDocument=index.htm
IISLogFile=d:\LogFiles net32Or64=false”
2、遵照景况传入参数 比如
网址名字 数据贮存地点 域名等 可以依赖实情修改。
ansible-playbook -i hosts web.yml -verbose –extra-vars “host=test
SiteName=linuxidc WebSitePath=D:\linuxidc.com HostHeader1=
1、加多、删除、修改web网址和选择程序池
如此那般就足以将全方位的利用程序池都导入到另七个服务器中了.
全体项目 附件到Linux公社财富站下载:
2、结束,运营web网址和使用程序池
导出全部站点的章程:
%windir%/system32/inetsrv/appcmd
list site /config /xml > c:/sites.xml
——————————————分割线——————————————
3、观望工作进程和伏乞音信
无差距于,大家须要编写制定sites.xml文件删除无需的站点.如:
Default
Website
免费下载地址在
4、一列表方式展现IIS和ASP.NET的铺排新闻,并帮忙对IIS和ASP.NET的布局新闻实行更改
导入站点的格局:
%windir%/system32/inetsrv/appcmd
add site /in < c:/sites.xml
用户名与密码都以www.linuxidc.com
AppCmd.exe工具提供了三个直接的命令集,利用该命令集,针对接受援救助的靶子类型,能够实行查询操作并产生部分别样职责,不仅能够段杜运营这一个命令,也足以讲命令进行组会集欲行命令组合,进而得以推行复杂的任务,完毕复杂的查询专门的学业,如表:
迄今结束,导入职业成就了,看看两台服务器的IIS配置一样了吧.
具体下载目录在 /二〇一六年龄资历料/12月/二十日/利用Ansible批量成立IIS站点/
对象名称 | 描述 |
site | 管理虚拟网站 |
app | 管理应用程序 |
vdir | 管理虚拟目录 |
appool | 管理应用程序池 |
config | 挂历通用配置文件 |
wp | 挂历工作进程 |
request | 管理http请求 |
module | 管理服务器模块 |
backup | 管理服务器配置备份 |
trace | 管理失效请求跟踪日志 |
别的,介绍下单独导出导入一个站点的办法
导出单独行使程序池:
%windir%/system32/inetsrv/appcmd
list apppool “应用程序池名称” /config /xml >
c:/myapppool.xml
肉桂色字体的正是要导出的施用程序池名称
下载情势见
http://www.linuxidc.com/Linux/2013-07/87684.htm
AppCmd.exe工具帮忙的一声令下:
导入单独选择程序池:
%windir%/system32/inetsrv/appcmd
add apppool /in < c:/myapppool.xml
——————————————分割线——————————————
add
导出单独站点:
%windir%/system32/inetsrv/appcmd
list site “站点名称” /config /xml > c:/mywebsite.xml
色情字体的正是要导出的站点名称
正文永远更新链接地址:http://www.linuxidc.com/Linux/2016-11/137611.htm
clear
导入单独站点:
%windir%/system32/inetsrv/appcmd
add site /in < c:/cnziben.com.xml
configure
参考:
delete
inspect
install
list
lock
migrate
recycle
reset
restore
search
set
start
stop
uninstall
unlock
AppCmd命令
温馨提示:命令总是位于对象在此以前,而属性总是位于对象之后,这样就能够透过创造二个好像于一条语句的布局,在这些布局中,appcmd.exe通告对象做某一件事。
list 列出利用程序池
set 配置利用程序池
add 增加新利用程序池
delete 删除应用程序池
start 运行应用程序池
stop 停止利用程序池
recycle 回收利用程序池
1、列出贰个目的具有实例
appcmd.exe list app
2、列出有一无二的对象实例
appcmd.exe list app “Default Web Site/”
3、列出满意一定准绳的对象实例
appcmd.exe list app /apppool.name:”defaultapppool”
4、列出目的的详细消息
appcmd.exe list app “default web site/”/text:*
5.列出全体XXX应用程序池的应用程序
appcmd.exe list app /text:/apppool.name:XXX
6、列出网址的铺排消息
appcmd.exe list site “default web site “/config
7、改造应用程序池
appcmd.exe set app “default web site/” /applicationpool:”XXX”
8、增添新的施用程序池
appcmd.exe add apppool /name:”XXX”
9、删除应用程序池
appcmd.exe delete apppool /apppool.name:”XXX”
10、列出全体的使用程序池的详细消息
appcmd.exe list apppool
11、查询全体应用程序池状态为started的
appcmd.exe list apppools /state:started
12、关闭内定应用程序池
appcmd.exe stop appPool /appPool.name:”XXX”
13、开启钦命应用程序池
appcmd.exe start apppool /apppool.name:”XXX”
14、监视当前的哀告
appcmd.exe list request
request对象足以行使性质来找到特定的音讯,通过动用性质,能够回到摸个运维时刻(以微秒总计)超越预设值的网址、应用程序池、专门的学问进度、U福特ExplorerL,
以及呼吁的音信。request对象所利用的习性富含:
依附网址ID的伸手
appcmd.exe list request /site.id:1
听新闻说应用程序池的乞请
appcmd.exe list request /apppool.exe:DefaultAppPool
依附专门的职业进度的呼吁
appcmd.exe list request /wp.name:”1044″
据他们说网址名称的哀告
appcmd.exe list request /site.name:”Default web Site”
依附进度运营时刻的央浼
appcmd.exe list request /elapsed:”1000″
15.站点备份与回复
备份站点:
appcmd.exe add backup backupname
列出备份:
appcmd.exe list backup
回复备份
在苏醒一个备份时,IIS结束运维,并且重写服务器的境况。一旦配置文件被重写,IIS随即重新启航。固然不希望IIS甘休运维一碗水端平复开动,那么能够是使用/stop:false。那样,就可以在相当的时光手动甘休IIS运转,并手动重新启航IIS
appcmd.exe restore backup /back.name:”XXX” /stop:false
appcmd.exe restore backup /backup.name:”XXX”
剔除备份
appcmd.exe relete backup XXX
16、列出服务器的完整布署新闻
appcmd.exe list config
列出暗许Web网址的布局
appcmd.exe list config “Default Web Site/”
当须求出示私下认可web网址的配置内容时,为了削减展现内容,能够实践
appcmd.exe list config “Defaul Web Site/” /section:system.net/settings
取得具备可用节点
appcmd.exe list config -section:?
17、编辑配置节点音讯
eg1: 启用全局IPv6
appcmd.exe set config /section:system.net/settings -ipv6.enabled:”true”
eg2:在大局配置中启用了IPv6,未来要在暗中同意的web中引用IPv6
appcmd.exe set config “” /section:system.net/settings
-ipv6.enabe:”false”
列出节点会集
appcmd.exe list config /section:httpErrors
编写制定节点集合
eg:把401谬误页面有”401。htm”修改为”defaulterror.htm”
通过运用加号(+)也许叁个减号(-)增添 活删除成分
删除503状态码
appcmd.exe set config /section:httpErrors /-[statusCode=’503′]
appcmd.exe set config /section:httpErrors /
[statusCode=’401′].path:defaulterror.htm
18、对布置举办加锁和平消除锁
解锁:
appcmd.exe unlock config “default web site”
/section:system.web/authentication
加锁:
appcmd.exe lock config “default web site”
/section:system.web/authentication
19、使用管道传送XML数据
能够在appcmd list
中选拔/xml修饰符来创制复杂的职分,还可以实行大范围的批处监护人业。利用/xml修饰符,能够讲三个查询的结果导出并保存到一个标准XML格式的公文中,进而使其余命令行工具也许shell命令能够运用这么些XML文件。举个例子,为了列出全体已启用的运用程序池,并将新闻保存到三个正经的XML文件中,实施以下命令:
appcmd.exe list apppool /state:started /xml
你大概感兴趣的稿子:
- IIS日志清理(CMD版,VBS版,JS版,WSH版)
- windows服务器通过appcmd完毕IIS备份、还原、查看的一声令下(适用IIS8在此以前版本)
- IIS下选择appcmd批量搭建网址