Jenkins自动化发布工具使用

很久之前net还只能在windows上部署的时候,或许很多创业公司朋友发布项目都是人肉部署,反正windows都是可视化的界面,拖拖拉拉,开开关关还不

是特别麻烦。。。现如今你的项目需要在linux上部署,可惜的是再也没有什么可视化的界面给你,全在xshell操作,如果在xshell上部署个位数的项目大家或许还可

以接受,如果要部署10+以上的服务呢,估计很多人在xshell上敲的头都大了。。。这就是为什么docker会有dockerfile,会有容器编排的docker-compose,所以找

一款自动化发布工具迫在眉睫了。

一: Jenkins部署

它的官方网址是:https://jenkins.io/download/  ,使用docker模式部署的话太简单了,本篇就不用Docker部署,而是直接部署到宿主机CentOS上,如下图:

Jenkins自动化发布工具使用

1. 导入jenkins的key

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/RedHat-stable/jenkins.repo
sudo rpm –import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2. 使用yum安装

yum install jenkins

3. 启动jenkins

[root@localhost ~]# service jenkins start
Starting jenkins (via systemctl):                          [  OK  ]

4. 然后在浏览器中输入你的虚拟机IP:  http://192.168.23.173:8080,看到下面的界面就算成功了。

Jenkins自动化发布工具使用

 

然后大家就可以按照步骤一步一步下去就可以了。

二:构建你的netcore程序

先提供一个简单的test程序,供后续做自动化部署只用。

  static void Main(string[] args)
        {
            var bgtask = Task.Run(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    Log.Info($”i={i}”);

                  Thread.Sleep(1000);
                }
            });

          AppDomain.CurrentDomain.ProcessExit += (s, e) =>
            {
                Log.Info($”{DateTime.Now} 恭喜,TestService服务程序已准备退出!”);
                Environment.Exit(0);
            };

          bgtask.Wait();
        }

三:jenkins配置

1.  点击新建任务

Jenkins自动化发布工具使用

2. 选择构建一个自由风格的软件项目,然后点击确定

Jenkins自动化发布工具使用

3.   这里的“源码管理”tab页是非常重要的,默认支持git和svn,这里就选择svn了,把你生成svn的地址贴上去,因为后续

      执行shell脚本的时候,会在jenkins的workspace文件夹中执行dotnet publish 的。

Jenkins自动化发布工具使用

4. 在“构建” tab页中,最最重要的就是里面的shell脚本。

Jenkins自动化发布工具使用

ps -ef | grep MemSql.Test.dll | grep -v grep | awk ‘{print $2}’ | xargs –no-run-if-empty kill
cd ./MemSql.Test
mkdir -p /data/output/MemSql.Test/v${BUILD_NUMBER}
dotnet publish -o /data/output/MemSql.Test/v${BUILD_NUMBER} -c Release
cd /data/output/MemSql.Test/v${BUILD_NUMBER}
BUILD_ID=dontKillMe nohup dotnet MemSql.Test.dll &

这里要关心的几处是:

《1》 在kill pid的时候,如果pid不存在,你的默认脚本会报pid不存在的错误的,所以加上 –no-run-if-empty  的if判断,没有就

          不执行kill。

《2》 使用了一个Jenkins的一个环境变量 {BUILD_NUMBER} , 也就是下图中的这个位置,用这个编译版本号作为文件夹。

Jenkins自动化发布工具使用

《3》 因为我是用nohup生成后台进程的,所以要使用dotKillMe命令让jenkins不要在生成完后kill 它。

然后点击保存,这个Test项目的自动化部署就搞定了。。。

四:操作流程

    在操作之前,一定要记得让 jenkins用户提升一下权限,否则你的 copy,mkdir可能权限不足,这里我就提升成root权限。

1: 把jenkins用户加入到root组中。

gpasswd -a root jenkins

2:修改/etc/sysconfig/jenkins文件, 把原来的 users= jenkins 改成root。

# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER=”root”
JENKINS_GROUP=”root”

3:重启Jenkins即可

service Jenkins restart

4. 然后你的步骤为:

《1》 在svn中提交代码

  《2》 找到你的所属项目,点击“立即构建”。

Jenkins自动化发布工具使用

    当然也可以让jenkins自动化构建,但是考虑到生成项目,最好还是加上手工发布这个按钮,安全可靠, 构建完之后,大家可以看看 jenkins的 “控制台输出”。

Jenkins自动化发布工具使用

然后你可以通过ftp去生产看一下,果然都跑起来了,v21就是我的编译版本号,而且你的日志果然就是我的业务逻辑输出,对吧,如下图:

Jenkins自动化发布工具使用

这时候,你觉得代码有问题,需要修改一下,把i 改成 m ,接下来的步骤也就是 “提交代码” -> “可视化立即编译”  ->  “查看结果” 这样的流水线作业而已啦。。。。

Jenkins自动化发布工具使用

好了,本篇就说到这里,希望对你有帮助。

局域网内利用GitLab+Jenkins自动生成GitBook并发布(Nginx)  https://www.linuxidc.com/Linux/2016-05/131136.htm
Linux+Git+Maven+Jenkins+Neuxs自动化编译环境搭建 https://www.linuxidc.com/Linux/2016-02/128652.htm
CentOS6安装Jenkins  https://www.linuxidc.com/Linux/2016-05/131365.htm
Jenkins服务器搭建指南-官方文档翻译整理  https://www.linuxidc.com/Linux/2017-10/147281.htm
使用Jenkins配置Git+Maven的自动化构建 https://www.linuxidc.com/Linux/2016-02/128641.htm
Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 https://www.linuxidc.com/Linux/2015-06/118606.htm
Jenkins的分布式构建及部署——节点  https://www.linuxidc.com/Linux/2015-05/116903.htm
使用Jenkins 自动部署发布  https://www.linuxidc.com/Linux/2017-04/143257.htm
CentOS 7.4下部署GitLab+Jenkins持续集成环境  https://www.linuxidc.com/Linux/2018-06/152768.htm
Jenkins的安装和构建一个Maven项目 https://www.linuxidc.com/Linux/2018-05/152155.htm
Jenkins+Maven+Tomcat+SVN+Apache项目持续集成详解 https://www.linuxidc.com/Linux/2018-03/151352.htm

Jenkins 的详细介绍:请点这里
Jenkins 的下载地址:请点这里

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 Jenkins自动化发布工具使用 https://www.lizi.tw/soft/10806.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

Jenkins自动化发布工具使用-海报

分享本文封面