TFS2010安装与管理
整了几天TFS,把相关的一些配置与安装的要点简单记下,希望对大家有用。本篇主要是安装与配置上的内容,下一篇会介绍如何使用以及使用方面的相关心得体会。
本篇内容简要:
   1.   安装部署
  1.1.  流程 
1.2. 安装操作系统
服务器建议2G以上内存,500G硬盘空间。
必须是windows 2003、windows2008。
1.3. 配置操作系统
更改计算机名称。
安装IIS。
创建TFS运行报表服务与自动构建的用户,建议属于administrators组,建议命名:
TFSBuilder 用于自动构建服务。
TFSReports:用于报表服务。
1.4. 安装必备软件
安装visual studio 2010。
SQL Server 2008,必须安装报表服务。
安装SharePoint 3.0 。
1.5. 安装TFS
TFS2010的安装采用很简单的自动向导,基本上默认的配置就可以安装完成,期间注意sharepoint与报表服务的关联配置。
1.6. 注意事项
对于服务器的机器名,必须在安装TFS前完成修改,否则当完成安装后如果修改计算机名会导致TFS若干服务无法正常运行。
如果安装TFS前,报表服务与SharePoint没有正常安装,则TFS不会帮你自动配置这些服务的关联,后续使用手工配置将会很复杂,且成功率很低。
在服务器端安装VS2010是为了当完成TFS安装后可以使用其客户端进行配置,而且具有最高权限。
服务器从裸机到安装好TFS估计需要3-5小时。
2. TFS管理
2.1. 项目结构
  TFS对于项目的管理有一个叫作项目集的概念,即可以创建一个集合,这个集合下可以创建相关的项目。 
应用场景有:
1、 企业可以根据每个项目组创建一个项目集,每个项目组的项目在自己的项目集下。
2、 一个大项目下包含若干小项目的管理方式。
2.2. 创建、删除项目
  打开VS2010的团队管理器,点击项目集右键,如图操作。 
然后根据向导,填入项目名、是否创建门户网站、是否使用新的源代码管理器等等内容即可,最后TFS会自动帮你创建所设置的项目。
  若要删除项目管理,打开VS2010团队资源管理器,选择项目后右键,如图操作: 
注意:这里删除的项目信息并不会自动删除门户网站,需要手工进行删除,删除的方式见后续章节。
2.3. 权限配置
2.3.1. 权限说明
2.3.1.1. 权限关联
TFS的权限与操作系统的用户或域是关联管理的,TFS是支持数据库账户、操作系统账户和域账户的权限管理。一般在20人以下使用的TFS,建议直接使用操作系统的账户比较方便和简单。当超过20人或以上的团队,建议使用与域账户关联的方式。
2.3.1.2. TFS权限结构
  TFS的权限结构是根据项目集、项目、内容进行分级管理的。下层可以覆盖上层的权限配置。 
2.3.1.3. 权限组
TFS在每个权限层都有默认的组,可以对现有的组进行修改或者新建自己的组。
  在项目集下默认有如下组: 
  在每个项目下默认有如下组: 
每个权限组可以包括不同的成员,具有不同的操作权限。
2.3.2. 项目权限配置
项目的权限配置包括了项目级、源代码、区域、团队查询、生成的权限控制。
项目级的权限控制,只是用于控制用户是否对本项目的访问权限,同理项目集也一样。有项目级的访问权限不代表具有源代码、区域等的权限,需要一一配置,不过TFS会默认生成4个权限组,对应不同的内容也有默认的配置,一般来说只需要配置这些组的成员即可。
以适应默认权限组,添加成员为例:
  点击VS2010团队项目管理器,右键团队项目,如图操作:
  弹出如下对话框,选择参与者点击属性: 
在如下对话框,选择从windows用户或组添加,在新的弹出框输入之前在系统创建的用户名即可。
  注意:为了简单配置,在操作系统创建参与TFS管理的所有人的账户,以后每个用户就根据当前操作系统的用户名/密码作为登录TFS的凭证。 
操作完成后,所配置的用户可以正常访问TFS并进行相关工作。默认的四个组中,均具有不同的权限,例如访问者是具有最少的权限,所在当前组的用户则具有最少的权限,管理员组则具有最高权限。
当一个用户既属于管理员组,又属于访问组时,当前用户则具有管理员加访问者的所有权限。
如果需要细致权限分配,可以创建自己的用户组进行管理。但新创建的用户组需要到源代码、区域、团队查询、生成等几个层次分别进行权限分配,再加入其成员即可。
源代码的权限,可以根据目录进行权限划分。
区域的权限,主要是对工作项内容进行控制的,例如能否创建工作项,能否关闭任务等等。
团队查询,主要是控制一些已定制的查询信息的权限。
生成,主要对生成操作进行权限控制。
2.3.3. 报表服务权限配置
报表服务的权限独立与TFS的项目管理权限,其设置方法如下:
  打开报表配置管理器,选择报表管理器URL选项卡,点击其URL进入如下网站: 
  点选TfsReports进入子目录,此时选择你需要配置权限的项目集,然后再选择项目,进入到子目录。如图: 
  然后点几击属性: 
  再点击安全性后,点击新建角色分配,如图: 
  出现以下页面: 
组或用户名必须输入当前操作系统下的组名或用户名,权限的内容根据实际情况进行勾选,最后点击确定按钮提交完成操作。
2.3.4. 门户网站权限配置
TFS的门户网站的权限也是独立与TFS项目的权限,需要另外设置。设置方法如下:
  在服务器的VS2010的团队资源管理中选择项目集下的项目,右键选择显示项目门户网站,出现如下站点: 
  点击红色圈中的链接—网站操作,在下拉框中选择网站设置,出现下图页面。 
  选择人员和组,出现下图页面。 
  点击新建按钮,出现新增用户页面。 
用户/用户组,必须填写本操作系统中的用户或组,输入完毕后可以点击检查名称进行确认。权限的授予则根据实际情况进行勾选,最后点击确定完成操作。
2.4. 工作项管理
TFS中的工作项一旦创建了,则不可删除。其主要考虑应该是微软觉得既然有计划要新增工作项就一定是存在的,可以提供修改,但不再UI页面提供删除的方法。如果确实是需要删除工作项,可以使用命令行的方式删除。操作如下:
  进入命令行模式,如图: 
  输入命令: 
CollectionName:所在项目集的名称,需要带http与端口。
IDNum:要删除的ID序号。
3. 模板定制
3.1. 方法
TFS支持工作项、过程模板的自定义。这里推荐一个辅助工具Microsoft Team Foundation Server 2010 Power Tools。安装后,可以直接从服务器中导出模板定义文件,保存后则直接导入到TFS服务器。如果不使用工具可以通过命令行的方式进行操作(不推荐)。
  安装完Microsoft Team Foundation Server 2010 Power Tools后,在VS的工具下多了此功能: 
3.2. 工作项
定制工作项,可以定制BUG、任务等,或者新建一个工作项。本文以修改默认的任务工作项为例说明如何操作。
  使用Microsoft Team Foundation Server 2010 Power Tools,如图操作: 
弹出选择类型的对话框,选择项目集、项目、类型后弹出如图界面:

Fields是定义任务工作项出现的字段。
Layout是定义创建工作项弹出的对话框的字段布局。
Workflow是定义工作项状态变化和操作的工作流。
3.2.1. 字段定义
  模板可以添加新的字段定义,字段的信息可以使用工具给出引用: 

根据实际需要,从Work Item Field Explorer选择需要添加的自定定义即可。
  3.2.2.   布局修改 
模板可以定义窗口中个字段的位置,还可以使用预览功能检查。
  在指定的位置新建一个control,然后在属性窗口选择FiledName和Type,如图: 
这里可以选择刚刚在上一步导入的新类型或者已有的类型,Type指定的是control的类型,可以是下拉框、日期选择或文本等等。
3.2.3. 工作流修改
模板还允许定制工作流,可以通过VS的设计器与工具箱的控件进行修改。
3.3. 字段映射
在TFS导出到Project文件中,可以定制TFS的字段与Peoject的字段进行映射关联,操作如下:
  下载映射文件: 
项目集名称、项目名称根据实际情况输入,映射文件名称可自定义。
  当下载完成后,使用编辑器打开XML,如图: 
自己可添加一条记录,对应Work Item Field Explorer中的字段属性,与project中的字段即可。
  完成修改后使用指令上传到TFS: 
TFS2010安装与管理的更多相关文章
- [转]centos6.6 rpm安装与管理
		
centos6.6 rpm安装与管理 原文地址:http://www.centoscn.com/CentOS/2015/0414/5182.html rpm包管理:安装.升级.卸载.查询.检验 安 ...
 - 安装docker管理工具rancher
		
http://blog.csdn.net/freewebsys/article/details/51136562 docker(2):安装docker管理工具rancher rancher是一个Doc ...
 - OpenStack安装部署管理中常见问题解决方法
		
一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...
 - 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(二)——自定义安装
		
原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(二)--自定义安装 自定义产品卸载方式 继续从上一次的基础上前进,现在我们已经知道了最简单的bootstr ...
 - 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX
		
原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)--初识WiX Visual Studio 打包安装七宗罪 开发.NET的人,肯定会使用Visual ...
 - IOS开发中Xcode常用插件安装与管理(转)
		
XCode中插件管理工具:Alcatraz 转自http://www.cocoachina.com/industry/20140506/8325.html 苹果现在的成绩得益于其始终如一的坚持. ...
 - 第十三篇 一个安装、管理windows服务的桌面程序
		
在网上看到一个修改程序入口的程序去把windows 服务修改成控制台的程序,然后利用控制台的程序把服务安装和管理,也想起自己原来也写了一个对windows 报务管理的程序,不过是winform的. ...
 - 关于ubuntu服务器上部署postgresql 以及安装pgadmin4管理工具(web版)
		
进入目录:cd pgadmin4 source bin/activate cd pgadmin4-1.6/ 启动pgadmin4:python web/pgAdmin4.py pgadmi ...
 - Solr7 安装部署 管理界面介绍
		
Solr7 安装部署 管理界面介绍 本章重点介绍CentOS 安装部署Solr7 ,Solr的管理界面介绍,添加核心Core配置,Dataimport导入数据,Documents 在线维护索引,Que ...
 
随机推荐
- JDK1.6官方下载
			
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin- ...
 - iOS插件化研究之中的一个——JavaScriptCore
			
原文:p=191">http://chentoo.com/?p=191 一.前言 一样的开篇问题,为什么要研究这个?iOS为什么要插件化?为什么要借助其它语言比方html5 js甚至脚 ...
 - Struct初学的,页面跳转
			
Filter控制器 jsp页面代码 <form action="page_login.action" method="post"> user ...
 - C++赋值运算符与赋值表达式
			
赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量.如“a=3”的作用是执行一次赋值操作(或称赋值运算).把常量3赋给变量a.也可以将一个表达式的值赋给一个变量. 赋值过程中的 ...
 - ant-学习记录二
			
<?xml version="1.0"?> <project name="targetStudy" default="mkdir&q ...
 - HDU 4160 Dolls (最小路径覆盖=顶点数-最大匹配数)
			
Dolls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
 - boost:regex分割字符串(带有'\'字符) - zzusimon的专栏 - 博客频道 - CSDN.NET
			
boost:regex分割字符串(带有'\'字符) - zzusimon的专栏 - 博客频道 - CSDN.NET boost:regex分割字符串(带有'\'字符) 分类: C++ 2011-08- ...
 - maven本地jar
			
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId&g ...
 - php:兄弟连之面向对象版图形计算器2
			
上篇说到通过result.class.php来分流,因为三个类都继承了shape这个类,让我们来看一下,面向对象中的继承. shape.class.shape文件 <?php abstract ...
 - mysql中IN和EXITS效率
			
mysql中的in语句是把外表和内表作hash 连接.而exists语句是对外表作loop循环,每次loop循环再对内表进行查询.一直大家都觉得exists比in语句的效率要高.这样的说法事实上是不准 ...