Skip to content

Jenkins持续集成自动化部署

自动化部署流程:【git push提交代码 】——>【触发Jenkins自动构建】——>【拉取GitHub代码】——>【build打包】——>【生成dist文件】——>【压缩dist文件】——>【迁移到指定环境目录下】——>【删除指定环境目录下的dist文件】——>【解压迁移过来的dist.tar】——>【删除dist.tar】——>【Success】

一、Jenkins安装

1. 构建如下的目录

txt
.
├── docker-compose.yml
└── jenkins
    └── jenkins_home

2. 赋予jenkins最高权限

chmod 777 jenkins/*

3. 编写docker-compose.yml

yml
version: '3'
services:
jenkins:
    image: jenkinsci/blueocean
    container_name: jenkins
    restart: always
    user: root                  # root权限
    ports:
    - "8080:8080"
    - "50000:50000"
    volumes:
    - ./jenkins/jenkins_home:/var/jenkins_home
    - /usr/bin/docker:/usr/bin/docker    # 挂载Docker 可选
    - /usr/local/apache-maven-3.8.6:/usr/local/maven    # 挂载maven 可选
    - /usr/local/jdk8:/usr/local/jdk8     # 挂载jdk 可选
    environment:
    - "TZ=Asia/Shanghai"

或者使用docker也行

shell
docker run -d \
--name jenkins \
-u root --privileged=true \
-p 8080:8080 -p 50000:50000 \
-v ~/jenkins_home:/var/jenkins_home \
-v /usr/local/jdk8:/usr/local/jdk8 \     # 挂载jdk 可选
-v /usr/local/maven:/usr/local/maven \   # 挂载maven 可选
-v $(which docker):/usr/bin/docker \     # 挂载 /usr/bin/docker 可选
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:2.346.3-2-centos7-jdk8

4. 执行命令 docker compose up -d 等待构建完成

shell
[root@localhost docker_home]# docker compose up -d
[+] Running 18/18
 jenkins 17 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                   49.5s 
······
······
······
 14a67803c2b3 Pull complete                                                                                                                                   31.7s 
[+] Running 1/1
 Container jenkins  Started                                                                                                                                      0.0s 
[root@localhost docker_home]# 
[root@localhost docker_home]# docker ps
CONTAINER ID   IMAGE                 COMMAND                   CREATED              STATUS              PORTS                                                                                      NAMES
03008fe2ca4b   jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   jenkins
[root@localhost docker_home]#

5. 访问jenkins http://ip:8080

piyXidI.png

第一次进入输入初始密码,查看初始密码

  • 进入容器查看 cat /var/jenkins_home/secrets/initialAdminPassword

  • 在挂载后的目录也能查看 cat jenkins/jenkins_home/secrets/initialAdminPassword

  • 或者 docker logs jenkins 也能查看

    piyXPeA.png

6. 插件安装和初始化配置

piyXEJf.png

创建管理员账号,保存并完成

piyXAFP.png

选择安装推荐的插件

piyXFot.png

插件安装可能安装失败,安装失败不用管,继续,后面更改为国内镜像后再安装

piyXeSS.png

把镜像源替换为国内的

【系统管理】-【插件管理】-【高级】将 http://updates.jenkins-ci.org/update-center.json 替换为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 重启jenkins后更新插件

piyXVW8.png

汉化插件安装 Locale

piyXmQg.png

二、插件安装

安装Publish Over SSH、NodeJS

1. 配置Publish Over SSH

pi631Wq.png

安装完成后重启jenkins

配置Publish Over SSH

【系统管理】-【系统配置】找到Publish Over SSH,点击新增SSH Servers

pi6GAr8.png

点【高级】填密码,应用,保存

pi6GkKf.png

2. NodeJS配置

【系统管理】——>【全局工具配置】——>【NodeJS 安装】 配置安装NodeJS的基本信息,自定义别名、选择安装版本,最后,先点击应用再保存。

pi6G1MV.png

三、配置maven和JDK

没有挂载宿主机的maven和jdk需要自己给容器安装

  1. 进入容器

    shell
    docker exec -it jenkins bash
  2. 选择安装到 /usr/local 下

    shell
    cd /usr/local
  3. 下载maven

    shell
    wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
  4. 解压

    shell
    tar -zxvf apache-maven-3.6.3-bin.tar.gz
    rm apache-maven-3.6.3-bin.tar.gz  # 删除安装包
  5. 改名 可选

    shell
    mv apache-maven-3.6.3/ maven
  6. 配置环境变量

    shell
    vi /etc/profile
    #set Maven environment
    export MAVEN_HOME=/usr/local/maven
    export PATH=$MAVEN_HOME/bin:$PATH
    # 生效profile文件
    source /etc/profile

四、添加凭据

添加凭据,也就是GitHub或者其他远程仓库的账号密码

五、创建job

第一次部署的Jenkins没用Job,创建一个,首页右边视图中,点击Create a job

输入项目名称:测试项目,选择构建一个自由风格的软件项目,点击确定

接下来需要配置项目的一些信息就可以使用了