使用TFS CI 又想保留服务运行状态的简单方法

最近公司使用TFS-CI的方式定期部署测试环境, 但是发现TFS-CI 运行完之后会清理agent所在的测试环境. 运行的进程都会被killed

1. 第一种方法: 本来第一反应 是使用systemd的方式 将 正在测试的产品作为linux的服务 驻留后台运行.

方法也很简单 就是简单增加了两个服务service即可.

java版本的

[root@centos76 deploy]# cat /etc/systemd/system/jstack.service 
[Unit]
Description=jstack

[Service]
Type=simple
ExecStart=/path/to/file

[Install]
WantedBy=multi-user.target 

dotnet版的

[root@centos76 deploy]# cat /etc/systemd/system/nstack.service 
[Unit]
Description=nstack

[Service]
ExecStart=/usr/bin/dotnet  /path/nstack/runtime/libs/yourapp.dll 
restart=always

[Install]
WantedBy=multi-user.target 

然后使用

systemctl  enable jstack && systemctl restart jstack
systemctl  enable nstack && systemctl restart nstack

但是发现 java版本的有问题 经常获取不到自己应用程序 path目录下面的资源或者是程序文件

程序有异常 这种方案没有实行的意义了.

2. 中午午休时睡不着 想到 使用远程执行命令的方法, TFS的agent 应该不会继续追杀了吧.. 本来想多用几台机器来测试,但是想了想意义不大  改用其他方式来处理

将启动服务的脚本进行修改

本来是

/deploy/startup

将 startup脚本修改为 startupback

然后 将原来的 startup 脚本进行修改
ssh [email protected] "/deploy/startupback"
来远程执行

注意 需要先使用 ssh-copy-id [email protected] 的方式来处理.

进行测试, 验证无问题..  貌似很简单的将TFS的agent欺骗了过去. 

记录一下 以后使用. 

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/12303733.html
ci