chocolatey install git -version *.*.*
choco install git
cinst git
cinst git -source http://192.168.56.11/nuget
内网里搭建起Nuget Server,用于项目专用软件包源。
- 开发/产品环境 - 采用___手动___和___脚本___并行的策略(半自动) - 持续交付流水线中的测试环境(运行build、tests的机器) - 做好对应的镜像,每天凌晨___定时___从镜像中心拷贝并___重建___对应的环境
- 依赖PowerShell4.0(WMF4.0) - 预装在Windows8.1及Windows Server 2012 R2的机器上 - Windows 7, Windows Server 2008 R2, Windows Server 2012升级Powershell到4.0后也可以使用 - 对权限要求相对较高 - 用户操作权限 - 网络访问权限等
Configuration MyConfig
{
Node "HostName_Or_IpAddress"
{
WindowsFeature IIS
{
Ensure = "Present"
Name = "Web-Server"
}
File MyFileExample
{
Ensure = "Present"
Type = "Directory“ # Default is “File”
Recurse = $true
SourcePath = $WebsiteFilePath
DestinationPath = "C:\inetpub\wwwroot"
DependsOn = "[WindowsFeature]MyRoleExample"
}
}
}
PS C: > MyConfig
#生成一个目录,目录下MyConfig.mof
PS C: > Start-DscConfiguration -Wait -Verbose -Path .\MyConfig
#执行一个DSC配置
|Resource|描 述| |--|--| |Archive| 在目标机器上解压zip文件| |Environment| 管理目标机器的环境变量| |File|管理目标机器的文件和目录| |Group| 管理目标机器上的本地用户组| |Log|日志配置信息| |Package| 在目标机器上安装和管理应用程序包 |
|Resource|描 述| |--|--| |WindowsProcess|管理目标机器上进程| |Registry|管理目标机器上注册表key value| |WindowsFeature|在目标机器上添加功能或者角色| |Script|在目标机器上运行PowerShell脚本| |Service|管理目标机器上的服务| |User|管理目标机器上本地用户账号|
if(!(Test-Path 'C:\SQLServer2008.zip')) {
(New-Object Net.WebClient).DownloadFile(‘http://10.18.8.100/ sql_server.zip','C:\SQLServer2008.zip');
}
if(!(Test-Path 'C:\sql_server'))
{
& 'C:\Program Files\7-Zip\7z.exe' x C:\SQLServer2008.zip -oC:\
C:\sql_server\setup.exe /ConfigurationFile=C:\ConfigurationFile.ini
}
xSQLServerSetup MySQLServer
{
SourcePath = ****
SourceFolder = ****
SetupCredential = ****
Features = ****
InstanceName = ****
InstanceID = ****
PID = ****
UpdateEnabled = ****
UpdateSource = ****
… …
}
xWebSite MyWebsite {
Name = "MyWeb"
ApplicationPool = "MyAppPool"
Ensure = "Present"
PhysicalPath = "C:\TestWebSite"
DirectoryBrowsing = "Enable"
BindingInfo = @(
@(MSFT_xWebBindingInformation
{
Protocol = "HTTPS"
Port = 2001
}
)
)
State = "Started"
DependsOn = @("[WindowsFeature]IIS", "[cAppPool]MyAppPool")
}
Configuration MyConfig
{
Node "HostName_Or_IpAddress"
{
Choco Git
{
Name = "git"
Ensure = "Present"
Version = ***
Source = ***
}
}
}
- Push模式 - 无实际服务器 - 部署前,Resource需要目标机器上 - 在执行时生效 - 适合少量机器管理及本地调试 - Pull模式 - 需要Pull服务器 - Resource保存在服务器上,目标机器按需拉取 - 定期监控状态,使目标机器处于期望状态 - 适合大量机器集群管理
Start-DSCConfiguration -Verbose
> WMF 5.0, DSC功能增强,添加Resource库,愈发完善
- Windows服务器系统环境 - 环境配置复杂、易变
- 非Windows平台,或过老的Windows系统 - 太多的网络或者权限限制 - 环境配置简单,单纯
- 我对《The DSC Book》的中文翻译 - https://yaowenjie.gitbooks.io/the-dsc-book/content/ - 本次Session的PPT - https://yaowenjie.github.io/share/dsc-slide/ - Demo样例 - https://github.com/Yaowenjie/PowerShell-DSC-Stuff.git
Presentations can be exported to PDF, here's an example: