dokcer maven jenkins 镜像 jenkins maven配置_Jenkins

Jenkins

官网

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

功能

Jenkins功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。

启动

首先保证系统中已经安装了jdk,最好是jdk1.5以上。
第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:
$ java -jar jenkins.war
如果需要修改端口可以使用如下命令:
$ java -jar jenkins.jar–httpPort=8081
然后在浏览器中(推荐用火狐)输入localhost:8081,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins。
第二种方法是用tomcat打开
解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat
将jenkins.war文件放入tomcat下的webapps目录下,启动tomcat时,会自动在webapps目录下建立jenkins目录,在地址栏上需要输入localhost:8080/jenkins。


环境准备

IP

版本

内存

192.168.1.40

CentOS Linux release 7.6.1810 (Core)

4G

安装JAVA环境

[root@localhost ~]# tar -zxf jdk-8u201-linux-x64.tar.gz 
[root@localhost ~]# mv jdk1.8.0_201/ /usr/local/java
[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@localhost ~]# rm -rf /usr/bin/java
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

安装Jenkins

[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# wget https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@localhost ~]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@localhost ~]# yum install jenkins
[root@localhost ~]# systemctl start jenkins

报错解决

[root@localhost ~]# systemctl status jenkins.service
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since 五 2020-11-27 14:34:54 CST; 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 22427 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)

11月 27 14:34:54 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
11月 27 14:34:54 localhost.localdomain runuser[22432]: pam_unix(runuser:session): session opened for user jenkins by (
11月 27 14:34:54 localhost.localdomain jenkins[22427]: Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录
11月 27 14:34:54 localhost.localdomain runuser[22432]: pam_unix(runuser:session): session closed for user jenkins
11月 27 14:34:54 localhost.localdomain jenkins[22427]: [失败]
11月 27 14:34:54 localhost.localdomain systemd[1]: jenkins.service: control process exited, code=exited status=1
11月 27 14:34:54 localhost.localdomain systemd[1]: Failed to start LSB: Jenkins Automation Server.
11月 27 14:34:54 localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
11月 27 14:34:54 localhost.localdomain systemd[1]: jenkins.service failed.

方法一:修改配置jenkins文件
[root@localhost ~]# vi /etc/init.d/jenkins
     79 /usr/lib/jvm/jre-1.7.0/bin/java
     80 /usr/lib/jvm/java-11.0/bin/java
     81 /usr/lib/jvm/jre-11.0/bin/java
     82 /usr/lib/jvm/java-11-openjdk-amd64
     83 /usr/local/java/bin/java    
     84 /usr/bin/java

#83行 加入本机jdk的位置,注意:指定到 bin目录的java层 ,后执行以下命令使配置生效,并启动jenkins
systemctl daemon-reload
systemctl start jenkins  # 启动

方法二:建立软连接
ln -s /usr/local/java/bin/java /usr/bin/java

关闭防火墙、沙盒

systemctl stop firewalld
setsenforce 0

访问

http://192.168.1.40:8080

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
a988dc3f30584130ab60a5e241ec9995

dokcer maven jenkins 镜像 jenkins maven配置_maven_02


dokcer maven jenkins 镜像 jenkins maven配置_java_03


等待插件安装

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_04

jenkins加速下载

安装加速神奇,Jenkins默认使用google来搜索插件的下载,而且插件也在国外网站,这里将updates目录中的default.json内的url换为百度(搜索引擎)和清华(下载插件地址),前提必须出现过以上界面才会有updates目录

cd /var/lib/jenkins/updates/
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json

然后重启服务,并重新访问Jenkins的web界面

systemctl restart jenkins

安装完成后,创建管理用户

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_05


默认继续

dokcer maven jenkins 镜像 jenkins maven配置_maven_06

配置jenkins全局工具

注: 尽量不自动安装

dokcer maven jenkins 镜像 jenkins maven配置_java_07


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_08

安装maven、git 、aliyun镜像

[root@localhost ~]# tar -zxf apache-maven-3.6.0-bin.tar.gz
[root@localhost ~]# mv apache-maven-3.6.0 /usr/local/maven
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/maven/bin' >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
[root@localhost ~]# find / -type f -name settings.xml
/usr/local/maven/conf/settings.xml
[root@localhost ~]# vim /usr/local/maven/conf/settings.xml  #配置阿里云镜像
157     </mirror>
158      -->
159      <mirror>
160        <id>aliyun maven</id>
161        <name>aliyun</name>
162        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
163        <mirrorOf>central</mirrorOf>
164      </mirror>
165    </mirrors>
166

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_09


dokcer maven jenkins 镜像 jenkins maven配置_java_10


dokcer maven jenkins 镜像 jenkins maven配置_java_11


dokcer maven jenkins 镜像 jenkins maven配置_java_12

Jenkins的插件管理

安装好jenkins,什么也干不了,jenkins相当于一个平台,安装什么样的插件,实现什么样的功能,功能的实现依赖于插件

dokcer maven jenkins 镜像 jenkins maven配置_maven_13


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_14


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_15

插件的安装

一般不会卸载,插件不会占用过多的空间。

第一种安装方式

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_16


dokcer maven jenkins 镜像 jenkins maven配置_maven_17


想要插件安装后生效,需要重启

查看插件是否安装

插件安装前后是不同的

dokcer maven jenkins 镜像 jenkins maven配置_maven_18


第二种方式(网站)

dokcer maven jenkins 镜像 jenkins maven配置_java_19


搜索区分大小写

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_20


dokcer maven jenkins 镜像 jenkins maven配置_maven_21


dokcer maven jenkins 镜像 jenkins maven配置_maven_22


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_23


很多版本,直接点击,便保存

dokcer maven jenkins 镜像 jenkins maven配置_java_24


dokcer maven jenkins 镜像 jenkins maven配置_java_25


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_26

用户管理

dokcer maven jenkins 镜像 jenkins maven配置_maven_27


dokcer maven jenkins 镜像 jenkins maven配置_java_28


dokcer maven jenkins 镜像 jenkins maven配置_java_29


dokcer maven jenkins 镜像 jenkins maven配置_java_30


这里可以修改密码。

新建用户usera

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_31


dokcer maven jenkins 镜像 jenkins maven配置_maven_32


新建用户userb

dokcer maven jenkins 镜像 jenkins maven配置_java_33


dokcer maven jenkins 镜像 jenkins maven配置_java_34


dokcer maven jenkins 镜像 jenkins maven配置_maven_35


点击安全矩阵,出现权限的管理

dokcer maven jenkins 镜像 jenkins maven配置_java_36


全局权限管理——查看

dokcer maven jenkins 镜像 jenkins maven配置_java_37


dokcer maven jenkins 镜像 jenkins maven配置_maven_38


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_39


如果把usera设置成administer,那么administer便是普通用户

Credentials凭证,如:jenkis拉去代码时,如果代码的仓库是私有的,需要验证,便称之为凭证

SCM 给代码打标签

查看项目权限管理——查看

dokcer maven jenkins 镜像 jenkins maven配置_maven_40


针对于项目的权限管理,不是很好,缺点:权限的细分

权限的管理分为两部分:
1 用户的权限管理
2 项目的权限管理

基于角色的权限管理

下载插件

dokcer maven jenkins 镜像 jenkins maven配置_java_41


dokcer maven jenkins 镜像 jenkins maven配置_java_42


dokcer maven jenkins 镜像 jenkins maven配置_java_43


dokcer maven jenkins 镜像 jenkins maven配置_java_44


dokcer maven jenkins 镜像 jenkins maven配置_java_45


dokcer maven jenkins 镜像 jenkins maven配置_java_46


出现下图的东西

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_47


创建任务

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_48


dokcer maven jenkins 镜像 jenkins maven配置_java_49


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_50


任务的首页

dokcer maven jenkins 镜像 jenkins maven配置_maven_51


回到首页

dokcer maven jenkins 镜像 jenkins maven配置_java_52


执行

dokcer maven jenkins 镜像 jenkins maven配置_java_53


新建任务

dokcer maven jenkins 镜像 jenkins maven配置_java_54


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_55


新建任务

dokcer maven jenkins 镜像 jenkins maven配置_maven_56


dokcer maven jenkins 镜像 jenkins maven配置_java_57


执行

dokcer maven jenkins 镜像 jenkins maven配置_maven_58


dokcer maven jenkins 镜像 jenkins maven配置_maven_59


创建角色

dokcer maven jenkins 镜像 jenkins maven配置_maven_60


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_61


给予权限

dokcer maven jenkins 镜像 jenkins maven配置_maven_62


dokcer maven jenkins 镜像 jenkins maven配置_maven_63


分配角色

dokcer maven jenkins 镜像 jenkins maven配置_java_64


dokcer maven jenkins 镜像 jenkins maven配置_maven_65


dokcer maven jenkins 镜像 jenkins maven配置_java_66


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_67


登录Usera用户

dokcer maven jenkins 镜像 jenkins maven配置_java_68


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_69


登录userb用户

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_70


添加项目的角色

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_71


dokcer maven jenkins 镜像 jenkins maven配置_maven_72


dokcer maven jenkins 镜像 jenkins maven配置_java_73


给予项目的权限

dokcer maven jenkins 镜像 jenkins maven配置_maven_74


dokcer maven jenkins 镜像 jenkins maven配置_maven_75


分配角色

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_76


dokcer maven jenkins 镜像 jenkins maven配置_maven_77


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_78


此时usera对web-A web-B有读、配置、构建的权限

Test是读的权限

dokcer maven jenkins 镜像 jenkins maven配置_java_79


登录usera

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_80


查看项目test-A

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_81


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_82


查看项目web-A

dokcer maven jenkins 镜像 jenkins maven配置_java_83


查看项目web-B

dokcer maven jenkins 镜像 jenkins maven配置_java_84


新建任务(admin用户)

dokcer maven jenkins 镜像 jenkins maven配置_java_85


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_86


源码管理

dokcer maven jenkins 镜像 jenkins maven配置_java_87


https://github.com/gjjcommon/game-of-life 构建触发器

类似crontab

H:避免任务执行失败

dokcer maven jenkins 镜像 jenkins maven配置_java_88


Pre steps build post steps 是一个整体

Build是核心

Post steps后的操作称为 构建后操作

dokcer maven jenkins 镜像 jenkins maven配置_maven_89


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_90


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_91


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_92


dokcer maven jenkins 镜像 jenkins maven配置_java_93


运行game-of-life

dokcer maven jenkins 镜像 jenkins maven配置_maven_94


dokcer maven jenkins 镜像 jenkins maven配置_java_95


dokcer maven jenkins 镜像 jenkins maven配置_java_96


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_97


Started by user Admin 这一次构建是谁触发的

Jenkins里的执行指令,jenkins都会形成一个临时的脚本

dokcer maven jenkins 镜像 jenkins maven配置_java_98


Jenkins主目录/工作目录

dokcer maven jenkins 镜像 jenkins maven配置_java_99


dokcer maven jenkins 镜像 jenkins maven配置_maven_100


所有都是项目的根目录

targert编译输出的结果

每个分支完成特定的功能 deploy负责部署 web 负责web显示 core负责核心代码

Build负责构建 test负责测试

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_101


配置邮件

dokcer maven jenkins 镜像 jenkins maven配置_maven_102


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_103


点击advanced

dokcer maven jenkins 镜像 jenkins maven配置_maven_104


dokcer maven jenkins 镜像 jenkins maven配置_java_105


邮件通知

dokcer maven jenkins 镜像 jenkins maven配置_java_106


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_107


配置

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_108


dokcer maven jenkins 镜像 jenkins maven配置_java_109


填写收件人的邮箱

dokcer maven jenkins 镜像 jenkins maven配置_java_110


发送的邮件是否需要构建日志作为附件发送过去(需要),点击advanced

dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_111


Trigger——什么样的情况下给谁发

失败的情况下给谁发

dokcer maven jenkins 镜像 jenkins maven配置_maven_112


Requestor触发本次操作的人

点击add trigger,编辑成功的情况下给谁发

dokcer maven jenkins 镜像 jenkins maven配置_java_113


dokcer maven jenkins 镜像 jenkins maven配置_maven_114


dokcer maven jenkins 镜像 jenkins maven配置_java_115


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_116


dokcer maven jenkins 镜像 jenkins maven配置_Jenkins_117