• 【原创】Team Foundation Server 域环境迁移


    先说下此片博客的上下文:部门所在的业务被集团出售,因此我们所有的计算机和服务器都得重新命名,退出当前域加入新公司的域。对于PC和其他服务器,目前不存在太大问题。但是对于Team Foundation Server (下面简称TFS)却是相对麻烦, 尤其是在集成了Window SharePoint Service (下面简称WSS)时。

    经过近一个月的研究与实验,基本上搞定了迁移工作。下面就详细说下迁移步骤:

    1.首先不能在没有把握的情况下在生产环境中搞,且生产环境一直在提供服务。我们的TFS是在Hyper-V虚拟机上运行,平时用Windows Server Backup Tool (Windows Server 2008以上自带)这个工具做的虚机备份。首先要讲此备份还原到另外一个地方。

    关于如何使用此工具,详情请见链接(以前工作中的写的,英文版,懒得翻译了)。关于还原备份到一个新的虚拟机,中间有个小技巧,详见我的另一篇随笔 【原创】还原Hyper-V 到一个新的虚拟机。我在这一步花了些时间,原因是还原出的虚机硬盘文件(*.VHD)可能是损坏的,表现在刚还原出的虚机在刚开机时提示要检测硬盘,等进入操作系统后,通过SQL Server Management Studio发现其中有一个主要的TFS数据库是suspend(挂起)状态。当时也尝试着去修复,但是无功而返。后来又尝试着还原虚机的备份几次,终于有一次是好了,至于原因,我也说不出为什么。

    还有就是在还原成功后,需要创建一个新的虚机来挂这个VHD文件,再创建虚机时要注意:不要启用网络功能,否则到时会跟生产环境里虚机冲突,造成生产事故(很有可能有人的计算机连到这台测试TFS)。

    2.到这一步,已经有还原出一个和最新的TFS一样的虚机来随便测试了,此时建议检查下还原出的虚机各项服务是否正常,测试项:

      1. TFS Project collection web sites(http://localhost:8080/tfs )

      2. WSS site(http://localhost)

      3. WSS Central Adminhttp://localhost:17012

      4.用TFS上的VS(如果有装)链接TFS

    如果确认各项功能没有问题,此时强烈必须建议做一个虚机快照,用于在以后随时还原到此状态。

    3. 用一个服务器本地账号(我这里叫 tfs-service-admin)来登录服务器,确保该账号拥有以下权限:

    1. Servers: Administrators (local Administrators group or equivalent)
    2. TFS: Team Foundation Administrators and Admin Console Users
    3. SQL Server: sysadmin
    4. SharePoint Products: Farm Administrators (if your TFS deployment integrates with SharePoint Products

    4. 创建一个测试域,且我在该测试域所在的服务器启用了DNS服务,为了测试环境能够相互通过域名通信。

    5. 下面的步骤就是要真正开始做迁移工作了,首先重命名此服务器(新名:CNXA1ERES-VM99),并退域加入工作组,这个步骤的目的有两个:

      1.因为在计算机加入新公司的域,很有可能会被要求重命名(大公司的计算机都有一定的命名规则)。

      2.避免在连上网络后,跟生产TFS服务器冲突。

    6. 这一步非必须,停掉其他跟生产有关的非TFS服务,如CC.NET,因为我们的TFS服务器上还跑build服务,这样做是为了减少对生产环境的影响。

    7. 启用虚拟的网络功能,从DHCP服务器获得IP,手动修改DNS为刚才所建的DNS服务器,如上所示,手动指定DNS是为了测试TFS能找到新的域服务器。

    8. 这时就可以通过远程桌面连接测试TFS了,通过tfs-service-admin账号。

    9.因为TFS服务器命名了,对应的数据库实例名也要修改,打开SQL Server Management Studio,:

    1. 实例名:CNXA1ERES-VM99
    2. Execute the following cmd in a new query.

        exec sp_dropserver 'cnxa1eres-vm31'

        go

        exec sp_addserver 'cnxa1eres-vm99',local

        go

      3.Restart SQL server service.

      4.execute “select @@servername” to check, it should be the new name.

    10. 如果之前很多服务(Windows 服务和IIS应用程序缓冲池所用到的)都用的是一个域账号,请给予新的域账号同样的数据库权限。

    11.修改TFS config文件中的服务器名,文件所在路径:C:Program FilesMicrosoft Team Foundation Server 11.0Application TierWeb Servicesweb.config.

    12.将新的域账号加到如下组:Local AdministratorWSS_WPGWSS_ADMIN & IIS_WPG 

    13. 更新WSS的一些配置:

     Run cmd as admin.

    1. Cd C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14BIN
    2. stsadm –o renameserver –oldservername cnxa1eres-vm31 –newservername cnxa1eres-vm99
    3. stsadm -o updatefarmcredentials -userlogin Touchpointadministrator -password Password1
    4. stsadm -o updateaccountpassword –noadmin -userlogin Touchpointadministrator -password Password1
    5. stsadm.exe -o spsearch -farmserviceaccount Touchpointadministrator -farmservicepassword Password1 (execute failed)
    6. stsadm.exe -o spsearch -farmcontentaccessaccount Touchpointadministrator –farmcontentaccesspassword Password1(execute failed)
    7. stsadm.exe -o editssp -title SharedServicesProviderName -ssplogin Touchpointadministrator -ssppassword Password1(execute failed)
    8. stsadm.exe -o osearch -farmserviceaccount Touchpointadministrator -farmservicepassword Password1(execute failed)
    9. stsadm -o migrateuser -oldlogin DOMAINuser -newlogin DOMAINuser -ignoresidhistory

    14.修改IIS应用程序缓冲池中的对应账号,重启IIS

    15.修改服务中对应的账号,变成新的域账号。

    16.Change the Service account to CNXA1ERES-VM99Tfs-service-admin in Team foundation server administration console, and then restart the server.

    17.Change the URLs in TFS console, to http:\cnxa1eres-vm99.touchpoint.net:8080/tfs, test succeed.

    18.Migrate TFS account

    1. Cd C:Program FilesMicrosoft Team Foundation Server 11.0Tools

    TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName /account:OldAccountName /toaccount:NewAccountName

  • 相关阅读:
    基于Spring+SpringMVC实现AOP日志记录功能service注入异常为null的解决办法
    关于SpringBoot项目打包没有把依赖的jar包一起打包的解决办法
    JavaFx项目打包成exe,并集成Jre,使Java项目在任意机器运行
    常用正则表达式
    SqlServer 2005及其以上版本能用的查询数据的行号
    js 中的倒计时功能
    数据库删除重复列
    【转】svn文件清除批处理工具
    JS获取当前页面名称
    sql 去除重复记录
  • 原文地址:https://www.cnblogs.com/successliwei/p/5718071.html
Copyright © 2020-2023  润新知