Ade*_*SIF 7 windows deployment powershell automation puppet
我想在Windows 2012 R2基础架构上自动化应用程序/角色/功能部署(无人值守),这个项目需要很多小时的编程,这就是我在这里问的原因.
我想部署以下应用程序和角色:Active Directory,DNS,Sql Server 2012,Citrix XenApp Server,Citrix XenDesktop服务器,Citrix Datacollector,Citrix许可证服务器,Citrix Storefront服务器.
因此,基本部署将在8台服务器上(已安装在ESXi上,仅配置ip配置).
我想象这个场景:
我将填写一个包含所有信息的CSV文件,并执行Powershell脚本来部署所有内容,我们可以想象一个脚本将为每个组件(sql,ad,dns,citrix等)调用不同的脚本.
我不想依赖任何工具(sccm,puppet或其他......),这就是我想从头开始创建它的原因 - >但也许我错了.
我也看了,有一个所谓的新功能PowerShell的DSC,以简化应用程序部署http://blogs.technet.com/b/privatecloud/archive/2013/08/30/introducing-powershell-desired-state-configuration-dsc .aspx 有一个简单的例子:如果你需要4个iis webserver,那么执行以下代码:
Configuration DeployWebServers
{
    Node ("test1.domain.com","test2.domain.com","test3.domain.com","test4.domain.com")
    {
    Windows-Feature IIS
    {
         Name = "Web-Server"
         Ensure = "Present"
    }
    }
}
DeployWebServers -OutputPath "C:\scripts"
Start-DscConfiguration -path "C:\scripts" -Verbose -Wait -Force
但在我的情况下,每个应用程序/角色或功能只有1个服务器,如果我理解的话,只有在(x)服务器上需要部署相同的配置时,此功能才有意义
你的建议是什么?我应该选择从头开始编写powershell脚本吗?或者选择像木偶或厨师这样的解决方案(更容易),但在这种情况下,我将依赖于工具.
最好的解决方案是使用sql数据库 - >我的项目的最终目标是一个带有数据库的Web应用程序,该数据库将执行我的powershell脚本来部署我的基础结构
当然,从这个Web应用程序,我将通过表单填充我的数据库,我的powershell脚本将查询此数据库以获取信息(IP地址,客户端名称,域名,密码,用户......)**
感谢您的意见.
Chef 或 Puppet 将是最简单的方法,这两种工具已经存在了足够长的时间,您不必担心它们会从实习生中消失。两者几乎都是开箱即用的,并且比您设计自己的系统所需的时间要少得多。
话虽如此,使用 PS 解决方案的一个好处是它不需要在目标盒子上安装任何代理(通过 WinRM 实现连接)。最终,您可以将其包装为 Powershell 模块,将其交给您的系统管理员,并保留对幕后发生的事情的完全控制。PS 解决方案将使您能够完全控制、更好地理解底层流程 - 但这会花费时间和其他设计难题。
总结一下:如果你有时间、意愿或特定的用例,那么就选择 PS。否则,就像大男孩那样做,这样就可以避免重新发明轮子——或者十七。
免责声明:我为前雇主做了 PS 的事情。