2010年5月14日,星期五

构建SharePoint 2010基本VM映像的提示

现在,SharePoint 2010具有RTM’d,许多新的虚拟机从它们引以为傲的主机中涌现出蝶(嗯,比喻可能需要做些工作)’目前主要是早期采用者,这对于在此期间参与SharePoint 2010的大多数人来说将是一个通用过程’的寿命。当然,如果您构建许多虚拟机,’值得花一些时间在一些基础图像上,您将这些图像用作其他模板的模板。在这篇文章中,我’我会经历我的一切’一直用作我的虚拟机“tree”这在创建新机器时节省了我的时间– if you don’目前,如果没有这样的图像,则在建立新环境时可能会浪费时间。更糟糕的是不愿创建新​​的VM,因为它带来了很多麻烦–具有这样的障碍不利于准确的开发/测试/研究,因为坦率地说,开发人员虚拟机倾向于增长“baggage” which isn’务必经常清理。我的设置以开发人员为中心,实际上是我的工作’m可以在我的笔记本电脑(8GB RAM)上在家中运行,而不是在工作时运行,但是您应该能够轻松地确定自己是否在处理不同的限制/要求。

创建体面的基础图像的目标是:

  • 通过一次安装/配置公共元素,减少跨不同配置(例如,基金会/服务器,独立/农场等)的工作量
  • 减少创建新VM所需的时间
  • 减少安装过程中的人为错误(因为我们这样做的次数减少了)

整体配置

创建SharePoint 2010 VM时,早期的决定之一是如何处理平台服务,例如Active Directory,DNS和SQL。简要地说,选择是(这里重点介绍AD,但许多选择也适用于SQL):

  • 每个虚拟机都拥有AD Directory Services,因此每个虚拟机都在其中’s own domain
  • 有一个单独的VM来托管AD,其他VM是同一域的成员
  • 唐’t在AD下运行,而是使用“使用PowerShell创建配置数据库”在本地帐户下运行的技巧。没有广告,您就赢了’不能执行某些操作(例如,显然是用户配置文件同步),因此您需要对这些取舍感到满意。

I’ve opted for:

  • 一台虚拟机正在运行Windows 2008 Server Core for AD DS, DNS etc. (I allocate just 256MB RAM and less than 5GB of disk space to this!)
  • 一台虚拟机正在运行‘full’SQL 2008 + SP2010(我认为SQL最多使用1GB RAM–我的感觉是SharePoint在开发人员VM中需要更多)

但是我不会’不一定要为每个人都推荐这一因素。我这样做是因为我认为如果我在不久之前就遇到硬件故障,那是一个大话题(正如您可能会说的那样,’发生),我可以起床并在其他人身上奔跑’的笔记本电脑很快就备份了SP2010 VM。当然可以’d有一些域/帐户问题要处理(如果我没有’(具有AD VM的备份),但是如果需要的话,它感觉更加独立且易于还原。我可能对这里的某些逻辑有些疯狂,有时我可能会转向我所采用的方法’d。一般建议:

  • 一台虚拟机正在运行AD, DNS and SQL
  • 一台虚拟机正在运行SP2010

如果您同时运行其他虚拟机(例如,如果有RAM,则是一个SP2007虚拟机或另一个SP2010虚拟机),使用此选项肯定会带来更高的性能。你真的不’t want more 实例s of SQL (in particular) running on the same physical hardware than you need.

我的基本图片“tree”

根据一组用于创建新VM的基础映像,这是我目前拥有的–蓝色框代表基本映像,金色框代表我实际运行和使用的VM:

SharePointVM树

希望这些名称具有足够的描述性,以使您对每台机器都一目了然’的目的。如你所见“instance” VMs aren’想象中的名字,“-1”后缀只是因为我’ll accumulate ‘n’ 实例 VMs over the next few years. In the unlikely event it’尚不清楚,SP是SharePoint Server,而SPF是SharePoint Foundation!

2010年

  • 赢得2008 R2
  • 的角色
    • 应用服务器
    • 档案服务
      • Web服务器(IIS)
  • 特征
    • 远程管理工具,例如广告工具
  • SQL 2008 SP1 CU2(在某些时候我’将此升级到R2)– 注意 在基本映像中包含SQL有一定的风险,并且’了解这一点很重要。例如我’尚未验证*一切* SharePoint需求都能正常工作–我将讨论该问题以及如何进一步处理。
  • R2的WCF修补程序(KB976462)
  • 便利性
    • 禁用关机事件跟踪器 (this drives me crazy on developer VMs, 我可以 ’不明白为什么不这样做’t for everyone!)
    • BGInfo (在启动文件夹中)
    • 禁用环回检查

然后sysprep’d.

2010年

如上所述:

  • 已安装SharePoint 2010必备组件
  • Visual Studio 2010(RC)
  • SharePoint Designer 2010
    • 开发工具,例如 Reflector Pro (将SharePoint程序集反编译并准备调试),我’ll probably add 锐化器 5.0即将在这里等
  • CKS:开发

然后sysprep’d.

SP2010-BASE

作为2010-DEVBASE,但已安装SharePoint 2010– * 配置向导/ psconfig无法运行.

SPF2010-BASE

作为2010-DEVBASE,但已安装SharePoint Foundation– * 配置向导/ psconfig无法运行.

效益

这使我可以快速创建新的VM,因为大多数安装过程都陷入了基础映像中。甚至让Reflector Pro在基础映像中反编译SharePoint程序集(shh!)之类的事情也意味着我不会’不必在我最终使用的每个VM上重复该步骤– if I’m深入调试SharePoint代码我可以保证我赢了’请耐心等待15分钟,以完成该步骤。如果我们可以在基本映像中进行比上述更多的配置,那将是很棒的,但是我不知道’认为您确实可以做到。还有我’d很想听听您是否对基本图像做了不同的处理。

一般注意事项

The following are some 注意s around the images and the process I use to 克隆:

  • 基本映像虚拟机未加入任何域
  • 图片全部 系统准备’d – if you’不对您的基本图片执行此操作 如果您曾经在同一域中同时运行两台计算机,则会遇到问题
    • 请注意,sysprep会重置许多内容,包括Windows激活和Windows Update状态(Windows将报告从未安装更新,尽管基本映像实际存在的任何更新)。
  • 希望每个人都知道这一点,但是 在SharePoint 2010中(与2007年一样),’无法安装和配置SharePoint的基本映像。 或更确切地说,’可能,但是如果从此类映像创建VM,则它们将无法可靠地存在于同一网络/域中,更不用说同一SharePoint场了。这是因为SharePoint将计算机名称存储在配置数据库中,并且如果您希望两个实例在同一网络/域上运行,则可以’需要重命名一个实例,该实例将与之不匹配’的数据库条目。您可以了解的最新信息是完成SP安装,但配置向导未运行–有点不方便,但是…
  • …当然,PowerShell可以帮助使其余配置(例如,配置/配置服务应用程序)尽可能可重复且快速。 加里·拉波因特(Gary Lapointe) (一个应该知道是否曾经有过的男人) 建议在当前版本中100%PowerShell脚本配置可能无法使用 由于一些配置步骤,可以’确实无法使用PowerShell完成,但是在某些时候我’可能会尝试将一些符合我大部分需求的脚本拼接在一起。

创建新VM的过程

要创建一个新的VM,请按照以下步骤进行–请注意,由于它包含在sysprep中,因此此处存在一些异常的SQL步骤’d基本图像,请继续阅读以下内容,以了解为什么现在可以避免这种情况:

  • 做一个VMware(或Hyper-V)“clone” from a 系统准备’d映像(通常是我的SP2010-DEVBASE映像)
  • 启动VM,然后:
    • 更改机器名称
    • 加入COB域
    • Windows更新,重启
  • 授予将用于在SQL中运行SharePoint配置向导权限的帐户。 由于sysprep更改了帐户的SID,因此此时没有用户有权使用SQL Server。 要解决此问题,我们需要以单用户模式启动SQL并添加登录名/权限:
    • 在SharePoint配置向导运行时将授予的权限之外,任何需要SQL权限的帐户。在这里,主要示例是用于安装/配置SharePoint的域帐户。“COB\sp_setup”(也应该是本地管理员):
      1. 打开SQL Server配置管理器
      2. 停止主SQL服务。
      3. 进入此服务的属性,然后在“高级”选项卡上找到“启动参数”属性。加“;-m”到最后(不带引号,确保您没有空格),然后单击‘OK’.
      4. 重新启动服务(您’重新进入单用户模式)。
      5. 为您的安装帐户创建一个SQL登录名,并添加到以下服务器角色:
        1. 安全管理员
        2. dbcreator
      6. 请注意,如果您有作为内置系统帐户运行的SQL服务帐户,则可能需要做进一步的工作。我有一个用于此目的的域帐户,并且没有’SQL服务帐户出现问题。
      7. I’我们还看到了一些引用,指出需要更新SQL中的服务器名称,但是’s 不 my experience.
  • 运行SharePoint配置向导/ psconfig
  • 做其他配置,例如服务应用

Sysprep和SQL– a better way

以便’s a bit of a smell – what’s the deal? Briefly, 它是 支持在运行SQL Server的计算机上运行sysprep我的东西’我不确定很多SharePoint人士都知道。我在地狱里没有办法’d考虑用这种方式处理客户使用的图像’s environment –一些研究表明,诸如Reporting Services和DTC事务之类的事情是SQL领域无法与sysprep完美配合的示例。但是,像我一样,您可能会发现sysprep’带有SQL的d图像对于SharePoint开发人员VM来说效果很好,具体取决于’在做。替代方案有些复杂,但是我’即使是我的家居用品,也可能会很快切入– SQL Server 2008 R2(几周前发布)增加了对sysprep的支持!基本上是’分为两步的安装过程,其前半部分在基础映像中完成(“prepare”), the second in each 实例 (“complete”).

乔希·迈耶(Josh Meyer) 整体过程 用于创建SharePoint 2010 VM。

有关sysprep和SQL的一些背景知识:

10条评论:

纳格帕勒元帅说过...

优秀的克里斯,谢谢你的分享。

我已经晒过太阳了'的虚拟框可创建独立的sp 2010开发环境。 VB最好的部分是32位主机上的64位客户机。我有win xp主机和win2008作为来宾

马特说过...

哇,谢谢克里斯-完美的时机!一世'在所有这些虚拟化和sysprep业务上都遥遥领先'只是一个雷区。我本周开始计划和构建HyperV基本映像,我已经可以看到您'我从字面上节省了我几天甚至几天的时间(更不用说很难找到东西了。)

再次感谢队友,也许我们可以围绕这个话题讨论SUGUK会议?

杰森·邓巴(Jason Dunbar)说过...

克里斯,你好

You know, SQL Server 2008 R2 has an option for standalone 实例 installation which effectively is like 系统准备ping SQL Serer.

诚然我'尚未尝试过,但这对于基本VM可能是个好消息!

杰森

匿名 said...

关于在单独的盒子上放置SQL的一件事是保存状态。如果SharePoint与SQL不同步,则可能会出现问题'在交易过程中。如果您希望在多个SP VM之间共享同一AD / SQL VM,则更有可能发生这些情况。

虽然从SP卸载SQL会很不错,但是使用Chris现在的当前设置让我感到舒适得多。

克里斯·奥'Brien说过...

@杰森

确实!那'是我在上一段中提到的方法。

克里斯。

克里斯·奥'Brien说过...

@arangas,

有趣的想法Alex :)但是,我能想到的唯一情况可能是导致SQL框“突然”丢失的原因,因为如果正常关闭电源,所有SQL事务都会从内存刷新到磁盘(即已提交/已滚动)视情况返回)。显然,这些事务纯粹存在于SQL端,因此它不是't as if they are "在SharePoint方面".

附带一提,如果生产中发生灾难性故障,您的情况也可能发生-有时设计为没有单点故障的系统在两个部分同时崩溃时仍然会发生故障。稀有,但并非不可想象。

我可以 '但这只是帮助,即使开发虚拟机而不是生产虚拟机的机会也很小,即使那样也可能不会对SharePoint造成问题。

还是您看到了可以具体阐述的特定内容?

干杯,

克里斯。

附言我绝对同意,尽管VM的*备份*需要保持同步!

杰森·邓巴(Jason Dunbar) said...

是的,是的。我确实在您之后的最后一段中看到了'd发表评论:-)

从那以后我就尝试过了,而且效果很好。我本来要逐步进行的,但是'已经在那里完成了。

无论如何,很棒的帖子-谢谢。

克里斯·奥'Brien说过...

@杰森

哈!别担心 :)

C。

布莱克·布莱克希尔说过...

I wrote a step by step blog post on how to do this. Thanks for the starting point! http://blakeblackshear.wordpress.com/2010/10/06/creating-a-repeatable-sharepoint-2010-development-vm-overview/

德克·洛恩说过...

克里斯,非常感谢。事情变得如此简单。我在基本配置中添加了我最喜欢的notepad ++,甚至使用了您的命名约定。