jenkins环境

centos安装JDK

  1. 首先执行如下命令搜索 jdk 安装包
    1. yum search java|grep jdk
    这里我们选择 1.8 版本,执行如下命令进行安装。

    注意:默安装默认的目录为:/usr/lib/jvm/

  1. yum install java-1.8.0-openjdk

此时只有运行环境,也就说 java 安装目录下只有 jre 文件夹,然后安装开发环境

  1. yum install java-1.8.0-openjdk-devel.x86_64

安装完可看到 java 安装目录下出现 binlib 等文件夹。
再次输入 javac 说明安装成功
image.png

配置 JAVA_HOME 等环境变量

找到 JDK 安装路径

首先我们依次执行如下命令,一步步找到正确的 JAVA_HOME 位置

  1. which java
  2. 输出:/usr/bin/java
  3. ls -lr /usr/bin/java
  4. 输出:/usr/bin/java -> /etc/alternatives/java
  5. ls -lrt /etc/alternatives/java
  6. 输出:/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java

可以发现最终找到的位置如下:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64

配置 JAVA_HOME

执行如下命令打开配置环境变量的文件

  1. vi /etc/profile

在里面添加以下配置(JAVA_HOME 参数根据前面找到的目录路径设置):

  1. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
  2. export JRE_HOME=$JAVA_HOME/jre
  3. export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
  4. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

最后执行如下命令让配置生效

  1. source /etc/profile

执行 echo $JAVA_HOME 如果能正确输出路径则说明配置成功

Ubuntu 安装JDK环境

  1. 通过apt安装.
  2. 通过官网下载安装包安装.
    这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级

二. 通过apt安装(jdk有很多版本, 这里介绍两种: openjdk和oracle的JDK)

  1. openjdk
    (1) 查找合适的openjdk版本:

apt-cache search openjdk
输入以上命令后会列出很多版本, 选择自己需要的即可:

default-jdk-doc - Standard Java or Java compatible Development Kit (documentation)
…(省略部分显示结果)
openjdk-6-source - OpenJDK Development Kit (JDK) source files
openjdk-7-jre-dcevm - Alternative VM for OpenJDK 7 with enhanced class redefinition
openjdk-7-jre-lib - OpenJDK Java runtime (architecture independent libraries)
openjdk-7-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-8-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-8-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-8-doc - OpenJDK Development Kit (JDK) documentation
openjdk-8-jdk - OpenJDK Development Kit (JDK)
openjdk-8-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-8-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-8-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
openjdk-8-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-8-source - OpenJDK Development Kit (JDK) source files
uwsgi-app-integration-plugins - plugins for integration of uWSGI and application
uwsgi-plugin-jvm-openjdk-7 - Java plugin for uWSGI (OpenJDK 7)
(2) 安装

  1. sudo apt-get install openjdk-8-jdk


(3) 配置环境变量, 编辑如下文件:

  1. vim ~/.bashrc


在最后一行加:

  1. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  2. export PATH=PATH
  3. export CLASSPATH=.:JAVA_HOME/lib/tools.jar


(4) 测试jdk是否安装成功:

  1. java -version


显示如下结果, 则说明安装成功:

  1. openjdk version 1.8.0_91
  2. OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~15.10.1-b14)
  3. OpenJDK Server VM (build 25.91-b14, mixed mode)


2. oracle的JDK
(1) 添加ppa

  1. sudo apt install software-properties-common
  2. sudo add-apt-repository ppa:webupd8team/java
  3. sudo apt-get update


(2) 安装oracle-java-installer

  1. sudo apt-get install oracle-java8-installer


安装器会提示你同意 oracle 的服务条款,选择 ok, 然后选择yes 即可

(3) 设置系统默认jdk

  1. sudo update-java-alternatives -s java-8-oracle


(4) 如果即安装了jdk7,又安装了jdk8,要实现两者的切换,可以:
jdk8 切换到jdk7

  1. sudo update-java-alternatives -s java-7-oracle


jdk7 切换到jdk8

  1. sudo update-java-alternatives -s java-8-oracle


(5) 测试jdk是否安装成功:

  1. java -version


三. 直接下载jdk压缩包方式安装

  1. 官网下载JDK   
    地址: http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html, 选择相应的 .gz包下载
  2. 解压缩,放到指定目录(以jdk-7u60-linux-x64.gz为例)
    创建目录:


解压缩到该目录:

  1. 修改环境变量
    1. sudo vim ~/.bashrc
    文件的末尾追加下面内容:
    1. #set oracle jdk environment
    2. export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60 ## 这里要注意目录要换成自己解压的jdk 目录
    3. export JRE_HOME={JAVA_HOME}/lib:{JAVA_HOME}/bin:$PATH
    使环境变量马上生效:
    1. source ~/.bashrc

    4. 设置系统默认jdk版本
    1. sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_60/bin/java 300
    2. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_60/bin/javac 300
    3. sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_60/bin/jar 300
    4. sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.7.0_60/bin/javah 300
    5. sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.7.0_60/bin/javap 300
    然后执行:
    1. sudo update-alternatives --config java
    若是初次安装jdk,会有下面的提示 :
    1. There is only one alternative in link group java (providing /usr/bin/java):
    2. /usr/lib/jvm/jdk1.7.0_60/bin/java
  2. 测试jdk
    1. java -version
    若有如下结果, 则说明jdk 安装成功:
    1. java version "1.7.0_60"
    2. Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
    3. Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
  3. 可能出现的错误信息
    1. bash: ./java: cannot execute binary file
    出现这个错误的原因可能是在32位的操作系统上安装了64位的jdk, 查看你安装的Ubuntu是32位还是64位系统:
    1. sudo uname -m
    i686表示是32位, x86_64表示是64位

    安装jenkins

    直接本地安装

    打开官网https://www.jenkins.io/download/
    1. // 关联仓库地址到服务器
    2. wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    3. // 添加地址配置文件/etc/apt/sources.list
    4. deb https://pkg.jenkins.io/debian binary/
    5. // 安装jenkins
    6. sudo apt-get update
    7. sudo apt-get install jenkins

    Docker镜像安装

    下载镜像

    打开终端,输入docker search命令搜索 Docker Hub 上可用的 Jenkins 镜像
    image.png
    官方推荐使用的镜像是jenkinsci/blueocean,该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (可以生产使用) ,并捆绑了所有 Blue Ocean 插件和功能。

    使用的是jenkins官方镜像,其集成的 Jenkins 版本比较高,结果出现好多插件不兼容的情况

果断使用jenkinsci/blueocean镜像,使用docker pull命令拉取
image.png
本地镜像仓库确认是否已存在
image.png

根据镜像创建容器

两种运行方式供你参考
方式一:直接运行,运行期间产生的所有数据都保存在容器内部,容器销毁,数据丢失。

  1. docker run \
  2. --name jenkins-blueocean \
  3. -d \
  4. -p 8081:8080 \
  5. -p 50001:50000 \
  6. jenkinsci/blueocean

方式二:Docker 会在宿主机上创建一个数据卷jenkins-data,容器映射该卷以持久化数据。

  1. docker run \
  2. --name jenkins-blueocean \
  3. -d \
  4. -p 8123:8080 \
  5. -p 50000:50000 \
  6. -u root \
  7. --privileged=true \
  8. -v jenkins-data:/var/jenkins_home \
  9. -v /var/run/docker.sock:/var/run/docker.sock \
  10. jenkinsci/blueocean

创建一个name为jenkins-blueocean的容器,端口映射到服务器的8123上。 -v jenkins-data:/var/jenkins_home: 本机/var/lib/docker/volumes/jenkins-data路径下会存储容器中的数据,建立持久化数据存储
Tips:8080 端口用来公开访问 Web 界面,50000 端口允许访问远程 Java (JIRA) AP

jenkinsci/blueocean容器内使用docker

如果在用容器中使用docker,必须加上第8 行。
第6、7行,提升了在docker启动jenkins容器中的执行权限。执行命令后不会报出Permission denied提示[

](https://blog.csdn.net/yulin009/article/details/101073542)
执行命令后创建容器
image.png
查看容器实例docker ps
image.png
如果一切正常,现在就可以通过http://:8123访问 Jenkins 的 Web 界面。

容器启动后,配置 Jenkins

Step1:解锁 Jenkins。
image.png
管理员初始密码被放到了/var/jenkins_home/secrets/initialAdminPassword 文件中。
进入到容器内部,再去查看对应的文件initialAdminPassword内容

  1. docker exec -it jenkins-blueocean /bin/bash
  2. cat /var/jenkins_home/secrets/initialAdminPassword
  3. 698bb48600014baeb872b62a208b953f

管理员密码,复制并粘贴到 Web 界面,用户admin,密码上面字符串
登录后就可以安装插件。
可以说完全由插件来驱动的,所以安装一些基础的插件是非要必要的,这里我们选择 安装推荐的插件 ,然后静静地等待插件安装完成即可。

安装设置插件

修改下载插件的地址,打开插件管理 > 高级 > 升级站点的url
修改为: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

  • Git Parameter
  • GitLab
  • Role-base Authentication Strategy:基于角色的权限控制
  • Extended Choice Parameter
  • Authorize Project
  • publish over ssh:通过ssh部署服务器
  • Build Timestamp Plugin
  • Code Coverage API
  • Copy Artifact Plugin
  • Infrastructure plugin for Publish Over X
  • jQuery plugin
  • JQuery3 API Plugin
  • JSch dependency plugin
  • Forensics
  • generic webhook trigger web触发器

配置的格式:http://[username]:[token]@ip:port/generic-webhook-trigger/invoke。
API token的添加:点击用户名 > 下拉 设置 > 添加api token > 点击生成11b30ee55a056f4a6b1bffc775ae943a7e
例如:http://admin:111717617345ce3d9d1f580a@47.96.0.230:8080/generic-webhook-trigger/invoke

  • nvm wrapper:提供node环境

Email Extension Plugin需要使用2.5版以下,否则发送邮件失败,可以在下面插件列表中选择下载然后手动安装
jenkins插件列表: http://updates.jenkins-ci.org/download/plugins/

角色和用户管理项目

设置下开发角色dev和测试角色qa
image.png
进入Manage and Assign Roles进行设置

管理角色Manage Roles

image.png
首先是Manage Roles管理角色,表示给不同角色设置不同权限。
image.png
dev开发角色只能查看到dev-开头的任务
qa测试角色只能看的qa-开头的任务

分配角色Assign Roles

给user分配角色,首先创建不同的用户如zhangsan为dev,liudehua为测试。
image.png
这样不同身份的用户进入后,看到的是不同的任务。

设置构建参数

image.png
设置为参数化构建,选择git参数。
image.png
然后在源码管理tab下,设置git地址和登录的身份
查看git地址命令

  1. git remote -v
  2. // 显示
  3. origin https://github.com/shenshuai89/koa2-zhihu-api.git (fetch)
  4. origin https://github.com/shenshuai89/koa2-zhihu-api.git (push)

设置多分支参数构建

image.png

image.png
接下来就可以动态选择出远程分支作为参数。
image.png

设置webhook触发器

通过安装插件

可以在构建触发器中设置,勾选Generic Webhook Trigger

API token的获取添加:点击用户名 > 下拉 设置 > 添加api token > 点击生成

image.png

配置构建命令

image.png

  1. npm install -g yarn vite
  2. yarn
  3. rm -rf build
  4. yarn build
  5. cd dist
  6. tar -zcvf dist.tar.gz *

zcvf 含义

  • z表示gz压缩包
  • c表示create创建
  • v表示view显示打包过程
  • f表示file
    • 表示目录下的所有文件

      设置构建条件

      image.png

      通过ssh发布项目

      进入系统管理->系统配置,找到底部的publish over ssh部署服务器
      image.png
      image.png

      配置免登陆

      1. ssh-copy-id 00.96.0.230
      要提前生成秘钥对,ssh keygen -t rsa

      配置构建后的动作

      image.png