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持续集成的更多相关文章

  1. 在TFS持续集成(持续发布)中执行Telnet任务

    Telnet是一种在因特网或局域网上使用虚拟终端连接,提供双向交互式文本通信设备的协议. 它是最早的互联网通讯协议之一.自1969年启用以来,已经经过了将近50年时间,在开放式的操作系统中拥有广泛的用 ...

  2. 在推送提交之后阻止Azure DevOps (TFS)持续集成

    在Azure DevOps服务器上配置生成定义时,可以配置连续集成(CI)生成.每次签入或提交到源代码库时都会自动运行一个CI构建.这种机制允许开发人员启动一个自动化的过程,例如编译和部署构建.这是一 ...

  3. 使用VSTS/TFS搭建iOS持续集成环境

    TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力.这篇文章给大家介绍一下如何使 ...

  4. TFS Build做Web应用持续集成发布的一个技巧

    由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...

  5. Android Studio 集成 TFS,实现安卓移动开发的持续集成和交付(DevOps)

    目录 1 集成TFS系统.... 1.1 概述.... 1.2 安装TFS插件.... 1.2.1 在线安装方式.... 1.2.2 离线安装方案.... 1.3 常见操作.... 1.3.1 新建G ...

  6. 从TFS到git的持续集成之路

    前言 公司目前使用TFS,由于TFS不灵活不能很好的持续集成,且给测试造成很大重的负担,所以近期准备迁移到git上 目标 解决项目运转的瓶颈(版本太多,导致测试跟不上,需引入自动化测试) 过程 主线分 ...

  7. Jenkins持续集成 & .NET

    最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,BlueOcean UI还是很nice的. 环境搭建 找 ...

  8. 使用CruiseControl.Net全面实现持续集成

    持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全 ...

  9. VSALM 动手实验 - 持续集成

    Visual Studio 应用生命周期管理(VSALM - Visual Studio Application Lifecycle Managemnet)是微软基于Visual Studio产品线所 ...

随机推荐

  1. Docker学习——gitlab部署

    Gitlab 下载镜像 docker pull hub.c.163.com/gutenye/gitlab-ce:latest 查看镜像 docker images 启动容器 宿主机和docker的端口 ...

  2. Java设计模式(23)——行为模式之访问者模式(Visitor)

    一.概述 概念 作用于某个对象群中各个对象的操作.它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 引入 试想这样一个场景,在一个Collection中放入了一大堆的各种对象的引用 ...

  3. jxls-2.x导出excel入门——基本操作

    之前随笔使用的是1.x的比较古老的版本了,已经不再维护,接下来使用较新的2.x的版本进行导出 之前一直按照其他的博客与官网的随笔进行导出,发现一直报错,后面更换了POI的版本为3.16(因为jxls也 ...

  4. 北京Uber优步司机奖励政策(1月15日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. P2934 [USACO09JAN]安全出行Safe Travel

    P2934 [USACO09JAN]安全出行Safe Travel https://www.luogu.org/problemnew/show/P2934 分析: 建出最短路树,然后考虑一条非树边u, ...

  6. CC3200底板测试-烧写CC3200-LAUNCHXL

    1. 拿到板子,先研究一下几个跳线帽的作用.我在底板上测到VCC_DCDC_3V3和VCC_BRD之间应该有一个跳线帽的,但是在原理上找不到. 2. LED灯的用途,测试的时候,发现这个灯有时候亮,有 ...

  7. 在Win10中通过命令行打开UWP应用

    近期由于需要在WinX菜单中添加几个UWP应用,但发现很难找到相应的命令行,Universal Apps 的快捷方式属性里也没有. 于是到网上搜了很久才找到一个E文的页面,试了一下确实可行,分享给大家 ...

  8. hdu1847Good Luck in CET-4 Everybody!(sg函数)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  9. 使用 Fiddler工具模拟post四种请求数据

    post请求主体详解: 对于get请求来说没有请求主体entity-body.对于post请求而言,不会对发送请求的数据格式进行限制,理论上你可以发任意数据,但是服务器能不能处理就是另一回事了.服务器 ...

  10. Git一分钟系列--快速安装git客户端

    在项目开发过程中,几乎所有公司都会用到版本控制工具来管理自己的项目资源文件,比如Git,SVN. 什么是svn? 版本控制软件,通过svn来实现版本控制首先需要搭建一个服务器,在服务器上创建仓库保存项 ...