从零开始搭建一条jenkins自动化部署流水线


0. 前言

本次流水线搭建目标实现:   代码检查-代码打包-部署 三步自动化.

1. 环境搭建

  • 服务器: 一台centos7.8虚拟机, IP: 192.168.58.132

    本地调试用, 一台就够, 资源充足可以多台

  • 环境: jdk1.8, maven3.5.2, jenkins2.289.1, sonarqube8.2, docker, docker-copmpose

1.1 安装jdk

yum install -y java-1.8.0-openjdk-devel.x86_64
java -version

1.2 安装maven

wget http://repos.fedorapeople.org... -O /etc/yum.repos.d/epel-apache-maven.repo
wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
mvn -v

1.3 安装git

yum install git
git

1.4 安装jenkins

这里直接使用war启动jenkins , 可以使用java -jar命令, 也可以使用tomcat启动. 这次我用的是tomcat

jenkins.war下载地址https://get.jenkins.io/war-stable/2.289.2/jenkins.war

启动后访问http://192.168.58.132:8080/jenkins

插件直接安装jenkins建议安装的插件, 如果有安装失败就重启jenkins几次.

默认密码在/var/jenkins_home/secrets/initialAdminPassword,  直接cat获取

1.5 安装sonarqube

先安装docker和docker-compose

yum install docker 
systemctl enable docker && systemctl start docker
curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker version
docker ps
docker-compose -v

再启动sonarqube

version: "3.7"

services:
  sonarqube:
    image: sonarqube:8.2-community
    depends_on:
      - db
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_temp:/opt/sonarqube/temp
  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data
networks:
  sonarnet:
    driver: bridge
     
volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  sonarqube_temp:
  postgresql:
  postgresql_data:
docker-compose up -d

如果启动几秒后发现sonarqube报错: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least执行以下命令然后重启容器

sysctl -w vm.max_map_count=262144

汉化sonarqube

先下载汉化包插件https://image.ytg2097.com/sonar-l10n-zh-plugin-1.16.jar

查找sonarqube插件的挂载路径, docker默认卷存放位置在/var/lib/docker/volumes/下, 如果按照上述安装步骤一直进行的话, sonarqube容器的插件包路径应该在宿主机的/var/lib/docker/volumes/sonar_sonarqube_extensions/_data/plugins下, 将下载好的jar放着这里

从零开始搭建一条jenkins自动化部署流水线
image-20210701170352931

然后重启再次访问http://192.168.58.132/9000, 可以看到汉化成功

2.配置jenkins

2.1 下载插件

进入插件搜索页面http://192.168.58.132:8080/jenkins/pluginManager/available, 分别搜索gitee, sonarqube scanner, Config File Provider, 然后安装

2.2 新增maven settings文件

进入配置文件管理页面http://192.168.58.132:8080/jenkins/configfiles/selectProvider, 选择Maven settings.xml, 然后submit, 在编辑页面里的content框中粘贴进去你的settings.xml配置然后submit

2.3 全局配置

进入全局工具配置页面http://192.168.58.132:8080/jenkins/configureTools/

2.3.1 配置java

从零开始搭建一条jenkins自动化部署流水线
image-20210701172410009

2.3.2 配置git

git直接默认配置就好

从零开始搭建一条jenkins自动化部署流水线
image-20210701172526943

2.3.3 配置sonarqube

选择自动安装 版本选择4.0

从零开始搭建一条jenkins自动化部署流水线
image-20210701172632014

去sonarqube生成一个token

从零开始搭建一条jenkins自动化部署流水线
image-20210701173002630

在jenkins配置sonarqube的token

从零开始搭建一条jenkins自动化部署流水线
image-20210701173142754

2.3.4 配置maven

从零开始搭建一条jenkins自动化部署流水线
image-20210701172734324

进入系统配置页面http://192.168.58.132:8080/jenkins/configure

2.4 系统配置

2.4.1配置sonarqube

从零开始搭建一条jenkins自动化部署流水线
image-20210702105600086

token选择2.3.3中配置的token

2.4.2配置gitee

从零开始搭建一条jenkins自动化部署流水线
image-20210702105813187
从零开始搭建一条jenkins自动化部署流水线
image-20210702105724228

配置令牌之后在job中不能选择使用, 还是需要gitee的账号密码来验证,   好像这个gitee APIV5 token没有任何作用,  这一点有待验证

3.测试Job

新建一个任务, 选择free style项目

demo项目地址https://gitee.com/ytg2097/gitee-ci.git

3.1 General

从零开始搭建一条jenkins自动化部署流水线
image-20210702110423395

3.2 源码管理

gitee链接选择2.4.2中配置的gitee地址

源码管理中Repository URL填写你的git项目地址;  Credentials添加一个全局的username类型凭证, 填写git账号密码

从零开始搭建一条jenkins自动化部署流水线
image-20210702111208008
从零开始搭建一条jenkins自动化部署流水线
image-20210702111314695

3.3 构建环境

构建环境中选择之前配置的maven settings文件

从零开始搭建一条jenkins自动化部署流水线
image-20210702111418234

3.4 构建

构建步骤中新增三个步骤: shell  –  SonarqubeScanner – shell.  三个步骤顺序不能错, 因为Sonnar需要扫描classes目录, 如果没有在sonar扫描之前进行maven打包操作的话会报如下错误

从零开始搭建一条jenkins自动化部署流水线
image-20210702153858954

3.4.1 maven 打包命令

mvn clean install -Dmaven.test.skip=true
从零开始搭建一条jenkins自动化部署流水线
image-20210702154106607

3.4.2 sonarqube scanner

sonar scanner步骤中的Analysis properties根据实际情况填写以下内容, 其他内容不用填, 默认就可以

从零开始搭建一条jenkins自动化部署流水线
image-20210702154307169
sonar.projectKey=ci-test.cn    
sonar.projectName=ci-test
sonar.projectVersion=1.0
sonar.sources=src
sonar.java.binaries=target/classes
sonar.language=java

3.4.3  启动jar

最后一步启动jar , 在shell步骤中根据需求填写shell命令就可以, 这里直接执行项目中内置的sh

从零开始搭建一条jenkins自动化部署流水线
image-20210702154351765
#!/bin/sh
chmod 755 start.sh
chmod 755 stop.sh
./stop.sh
echo "先停止"
./start.sh
echo "后启动"

全部配置完成后保存然后执行一下试试

从零开始搭建一条jenkins自动化部署流水线
image-20210702154658738

浏览器访问测试

从零开始搭建一条jenkins自动化部署流水线
image-20210702154734434

去sonar看一下扫描结果

从零开始搭建一条jenkins自动化部署流水线
image-20210702112427317

4. 后语

后面会再更新一篇云服务器环境搭建, 以及容器应用的自动化部署

原文始发于微信公众号(者行花):从零开始搭建一条jenkins自动化部署流水线

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/47711.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!