在10年前,发布项目基本靠本地打包后去线上替换,作为一个互联网公司,在前后端分离微服务大行其道的今天,这种手工发布已经无法满足技术团队需要,发布需要足够自动化,才能提升开发调试、测试、上线的需要。

本篇为连载文章,将从0开始带你体验一个企业中小团队持续集成的最佳实践。将从安装、插件、Git/Maven集成、后端Tomcat项目发布、SpringBoot项目发布、前端项目发布、主从多节点发布、Android项目打包、自动构建触发、钉钉集成、流水线构建、Docker集成来讲解不一样的Jenkins。

配套视频地址:https://www.bilibili.com/video/BV1R54y117MD
有帮助请三连支持

准备一台Linux机器作为Jenkins环境

  • 最低2核4G起,企业建议4核8G以上,16G为最佳
  • 虚拟机或ECS云服务器
  • 本文以Centos7为例

用户配置

配置ci用户组,创建jenkins用户,并且指定ci组

$ groupadd ci
$ useradd jenkins -g ci

创建存放jenkins工具的目录,并指定权限,因jenkins后期构建比较占用磁盘,此处建议先挂载磁盘

$ mkdir -p /data/software
$ chown -R jenkins:ci /data/software

# 切换jenkins用户,进入到software目录
$ su jenkins
$ cd /data/software/

# 下载jenkins.war,如果下载较慢,建议采用迅雷下载,然后上传至Linux
$ wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

安装Java环境

  • 下载jdk,上传至linux并解压
  • 配置/etc/profile的内容
  • 使配置生效
  • 检测java环境信息

启动jenkins

# 使用nohup命令启动
$ nohup java -jar /data/software/jenkins.war --httpPort=8777 --httpsPort=8778 > /data/software/jenkins.log 2>&1 &

使用tail命令查看启动日志,日志中会输出jenkins密码

$ tail -222f jenkins.log

2020-09-10 16:10:55.442+0000 [id=32]	INFO	jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

ad1c1a787a21426a9134cc8255071360

This may also be found at: /home/jenkins/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2020-09-10 16:18:48.533+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Completed initialization
2020-09-10 16:18:48.551+0000 [id=20]	INFO	hudson.WebAppMain$3#run: Jenkins is fully up and running

开放8777端口供外网访问
如果是云服务器,使用Nginx做代理即可(或开放安全组8777端口),如果是虚拟机在防火墙中加入8777端口并重载配置

  • 云服务
    (1)使用Nginx代理
    (2)开放安全组8777端口
  • 虚拟机
    # 开启防火墙8777端口
    $ firewall-cmd --zone=public --add-port=8777/tcp --permanent
    
    # 使配置生效
    $ firewall-cmd --reload
    
    # 防火墙扩展命令如下(云服务直接操作阿里云安全组即可)
    (1)设置开机启用防火墙:systemctl enable firewalld.service
    (2)设置开机禁用防火墙:systemctl disable firewalld.service
    (3)启动防火墙:systemctl start firewalld
    (4)关闭防火墙:systemctl stop firewalld
    (5)检查防火墙状态:systemctl status firewalld 
    
    (1)查看防火墙状态:firewall-cmd --state
    (2)重新加载配置:firewall-cmd --reload
    (3)查看开放的端口:firewall-cmd --list-ports
    (4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
      命令含义:
      –zone #作用域
      –add-port=9200/tcp #添加端口,格式为:端口/通讯协议
      –permanent #永久生效,没有此参数重启后失效
      注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
    (5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
    

访问jenkins

外网或宿主机访问浏览器地址http://192.168.1.195:8777/

浏览器访问
安装推荐插件
自定义安装插件
长时间等待插件的安装
安装失败的插件无需处理
创建管理员
实例配置,可以选择现在不要
安装就绪
开始使用
到此jenkins的安装就完成了,接下来我们观看第二篇,常用插件的配置

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐