TFS持续集成
TFS持续集成的就是跟踪代码变更,合并,能够自定义脚本,任务进行自动化测试,发版,部署,有点像docker的味道。在这个代理服务器分布式中tfsserver起着能够随时拿去最新代码能够统一执行任务的角色,所不同的是代理服务器仅仅是执行具体的编译,而tfs起着统一管理,调度,安排的作用。
那么tfs持续集成是怎么实现的?
1 来看一篇博客
http://www.cnblogs.com/zjoch/p/5741499.html
先要理解tfs的持续集成的架构,即分布式架构,一个服务器可以配置多个代理池,每个代理池可以注册不同的代理服务器,每个代理服务器可以被定义多个任务
那么首先来解释一下代理池是什么?
代理池其实就是一个容器与线程池的机制类似,他动态的监视代理服务器的状态,当还有任务需要执行,在代理池中分配空闲的代理服务器给任务进行执行,就是这么简单的理解就可以了
2 代理服务器
是的代理服务器,就是相当于公司部署了一个tfsserver,比我这个server是12的地址,有一天我自己下载一个代理服务器包到本地执行相关的配置命令然后搞一个windows服务器启动起来去tfsserver认证就可以了,其实认证的时候也就注册了,两边分布式的进行,注册上了就可以给代理池使用了。
3 注册代理服务器的过程蛋疼的事儿
不得不说windows ms应该是一直以来都没有把权限机制吃透,所以会出现很多权限的奇怪问题,也有像博客里面提到第一个注册的时候代理服务器是红色的也就是授权失败了,我也是删掉,再来注册配置,饭饭服务搞了几次才神奇的变绿了,哎 我那个去搞不懂ms这个权限咋个在做的。
有一天我要迁移tfs代理服务器的代理池,于是乎就要重新来一次了,将代理从原有池中删除,运行代理服务器的cmd来注册,注册到目标代理池发现注册上了结果不起作用,删掉再试也不行,果然ms是使用了ie做的代理服务器来连接tfs中心服务器,ie自然要缓存你在tfs中心服务器上的账号,他会使用这个去登陆验证你的tfs使用权限,并且ie中需要将tfs服务器地址添加到受信任的站点里去,哎ms真他妈蛋疼。然后就ok了
具体详细的流程是
1 运行ConfigureAgent.cmd
2 在输入账号的时候就是输入你自己机器的当前用户和密码
3 如果注册过后在tfs上去看发现是红色的
4 打开ie把tfs地址粘贴进来访问tfs,然后输入你在tfs上使用的账号和密码(注意tfs需要域比如我的是esp/xiangxiaode),然后登陆进去,并且把他加入受信任的站点。
5 在代理池把代理删掉,再重新注册ok,变绿色了可以使用了
6 把自定义的生成脚本使用的代理池修改一下

4 关于tfs角色
1)代理池管理员
也就是能够管理代理池的用户
2)代理服务器管理员
也就是代理服务器注册的时候需要的用户,每次都会带着这个用户去做验证,所以这2个角色要搞起哦
这里专门有一篇帖子说过这个事情
http://www.cnblogs.com/danzhang/p/6136149.html
5 之所以我在本地搞了一个服务器的原因
原本tfsserver本地已经配置了net mono的编译环境了,但是但是现在我们使用了angular来做前端开发,那么前端开发使用git方式托管,自然也是要能够持续集成的。但是但是问题在于tfsserver是一台内网服务器,他没有链接外网的能力所以nodejs,npm那一套在线化安装就不灵了,这个时候我本地呢,就有前端开发环境,也可以联网所以就把本地配置了一个代理服务器来实现自动发版的需要,方便测试人员更新版本。
6 在执行配置服务脚本的是遇到需要升级powershell
具体可以参考:http://www.cnblogs.com/wenBlog/p/6198354.html,按照说明升级即可
TFS持续集成的更多相关文章
- 在TFS持续集成(持续发布)中执行Telnet任务
Telnet是一种在因特网或局域网上使用虚拟终端连接,提供双向交互式文本通信设备的协议. 它是最早的互联网通讯协议之一.自1969年启用以来,已经经过了将近50年时间,在开放式的操作系统中拥有广泛的用 ...
- 在推送提交之后阻止Azure DevOps (TFS)持续集成
在Azure DevOps服务器上配置生成定义时,可以配置连续集成(CI)生成.每次签入或提交到源代码库时都会自动运行一个CI构建.这种机制允许开发人员启动一个自动化的过程,例如编译和部署构建.这是一 ...
- 使用VSTS/TFS搭建iOS持续集成环境
TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力.这篇文章给大家介绍一下如何使 ...
- TFS Build做Web应用持续集成发布的一个技巧
由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...
- Android Studio 集成 TFS,实现安卓移动开发的持续集成和交付(DevOps)
目录 1 集成TFS系统.... 1.1 概述.... 1.2 安装TFS插件.... 1.2.1 在线安装方式.... 1.2.2 离线安装方案.... 1.3 常见操作.... 1.3.1 新建G ...
- 从TFS到git的持续集成之路
前言 公司目前使用TFS,由于TFS不灵活不能很好的持续集成,且给测试造成很大重的负担,所以近期准备迁移到git上 目标 解决项目运转的瓶颈(版本太多,导致测试跟不上,需引入自动化测试) 过程 主线分 ...
- Jenkins持续集成 & .NET
最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,BlueOcean UI还是很nice的. 环境搭建 找 ...
- 使用CruiseControl.Net全面实现持续集成
持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全 ...
- VSALM 动手实验 - 持续集成
Visual Studio 应用生命周期管理(VSALM - Visual Studio Application Lifecycle Managemnet)是微软基于Visual Studio产品线所 ...
随机推荐
- MapReduce输入输出的处理流程及combiner
MapReduce 的输入输出 MapReduce 框架运转在<key,value> 键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组 ...
- Linux字符设备驱动--No.2
分析中断注册函数:request_irq int butsOpen(struct inode *p, struct file *f) { int irq; int i; ; printk(KERN_E ...
- RESTful Demo
Demo 功能 两个模块, App 与 Admin, App 模块提供增加用户(/add?name=${name})与查询用户(/query/${id}), Admin 模块提供列出所有用户(/lis ...
- 2017Noip普及组游记
Day0 一天都基本在休息,早上信心赛,大家都是400整. 下午一群人窝在教室里打三国杀. Day1:Before Contest 早上大约十点到了试场,在考提高组,不能进. 喝了一杯咖啡去除早起的身 ...
- 成都Uber优步司机奖励政策(1月14日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 【SQLSERVER】从数据库文件mdf中拆分ndf的方法和利弊
一.数据文件格式 SQLSERVER中,数据库的文件后缀有3种:mdf.ndf.ldf. 如下图所示,DW_TEST.mdf.DW_TEST_HIS.ndf.DW_TEST.ldf 属于同一个数据库T ...
- cf#516A. Make a triangle!(三角形)
http://codeforces.com/contest/1064/problem/A 题意:给出三角形的三条边,问要让他组成三角形需要增加多少长度 题解:规律:如果给出的三条边不能组成三角形,那答 ...
- Linux命令应用大词典-第23章 进程和服务管理
23.1 ps:报告当前进程的快照 23.2 top:显示当前正在运行的进程 23.3 pgrep:按名称和其他属性查找进程 23.4 pidof:查找正在运行的进程的进程号 23.5 pstree: ...
- SqlServer的两种插入方式效率对比
protected void button1_Click(object sender, EventArgs e) { DataTable dtSource = new DataTable(); dtS ...
- 【system.folder】使用说明
对象:system.folder 说明:提供一系列针对文件夹的操作 目录: 方法 返回 说明 system.folder.exists(folderPath) [True | False] 检测指定文 ...