@Devops jenkins安装jenkins的项目构建详解

时间:2022-10-09 21:00:57


文章目录

Devops

一、jenkins安装步骤

@Devops jenkins安装jenkins的项目构建详解

1、安装jdk

yum install

2、获取安装包

#下载页面:
https://jenkins.io/zh/download/

#安装文件:
jenkins-2.190.3-1.1.noarch.rpm
wget

3、安装

rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
yum install

4、配置文件修改

#修改用户及端口(root)
[root@jenkins ~]# vim /etc/sysconfig/jenkins
更改用户及端口
JENKINS_USER="root"
JENKINS_PORT="8888"

5、启动jenkins

[root@jenkins ~]# systemctl start jenkins

6、浏览器测试访问

http://192.168.15.100:8080

#如下所示:安装成功

@Devops jenkins安装jenkins的项目构建详解

7、查看用户密码

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

8、测试(选择插件安装)

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

9、安装插件

@Devops jenkins安装jenkins的项目构建详解

10.配置国内下载地址(换源)

#这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址
[root@jenkins /var/lib/jenkins/updates]# cd /var/lib/jenkins/updates
[root@jenkins /var/lib/jenkins/updates]# sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@jenkins /var/lib/jenkins/updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json




#最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址:如下所示
系统管理 -> 插件管理 ->

@Devops jenkins安装jenkins的项目构建详解

方式一:system restart jenkins

方式二:浏览器重启,如下所示

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

重新登录

@Devops jenkins安装jenkins的项目构建详解

11、安装中文插件

手动安装插件地址目录:/var/lib/jenkins/plugins

#下载中文汉化插件  
Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"




#下载完成重启生效(插件安装完成)

@Devops jenkins安装jenkins的项目构建详解

变成中文模式

@Devops jenkins安装jenkins的项目构建详解

二、jenkins的使用

1、Jenkins用户权限

利用Role-based Authorization Strategy 插件来管理Jenkins用户权限

1》下载插件:Role-based Authorization Strategy

完成后直接重启即可

@Devops jenkins安装jenkins的项目构建详解

功能:全局安全配置下 --> 访问控制下载的插件Role-based选项

2》开启权限全局安全配置

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

2、创建角色 (拥有管理员权限功能)

1》进入安全配置下–> 启用用户允许登录,并保存

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Item roles(项目角色): 针对某个或者某些项目的角色
Node roles(节点角色):节点相关的权限

@Devops jenkins安装jenkins的项目构建详解

添加用户test

@Devops jenkins安装jenkins的项目构建详解

test: 设置成所有的用户都有查看的权限
Alvin: 设置以alvin开头的项目有超管权限
Oldboy:设置以oldboy开头的项目有超管权限

@Devops jenkins安装jenkins的项目构建详解

3、用户创建

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

切换用户查看

@Devops jenkins安装jenkins的项目构建详解

4、Jenkins凭证管理

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

凭据添加

1)Username with password:用户名和密码
2)SSH Username with private key: 使用SSH用户和密钥
3)Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径 设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
4)Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token Certificate:通过上传证书文件的方式
5)X.509:证书,一般使用第三方云服务时使用。
6)Certificate:docker私有仓库密码存储类型。

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

gitlab测试

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

5、配置私钥登录

root@jenkins ~]# ssh-keygen    #创建密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): #使用密码短语(不输入密码为空)
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ZpWDWGzLlae1WhSwNjNtSKkq1/bKruoDs4ztN5gT8TQ root@jenkins
The key's randomart image is:
+---[RSA 2048]----+
| .. o+.. |
| ooo+=+ |
| .o.+@=o. |
| . E +o.*o |
| + . oS o |
| + o ooo . |
| + B o . . |
|. B + . . |
| ..+o+.o+. |
+----[SHA256]-----+

[root@jenkins ~]# cat .ssh/id_rsa.pub

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

6、Jenkins中的凭证使用

# 系统管理  ->  Manage Credentials -> 全局

# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上
2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中

# Jenkins连接远程机器
1、系统管理 -> 系统配置 -> SSH remote hosts

2、系统管理 -> 系统配置 ->

构建流水线

@Devops jenkins安装jenkins的项目构建详解

>如果错误:添加ssh凭证,


如下所示:


@Devops jenkins安装jenkins的项目构建详解

>凭证完成后如下所示:


@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

【使用ssh凭证添加连接远程server】

# Jenkins连接远程机器
1、系统管理 -> 系统配置 -> SSH remote hosts

2、系统管理 -> 系统配置 ->

SSH remote host

@Devops jenkins安装jenkins的项目构建详解


Publish over SSH

@Devops jenkins安装jenkins的项目构建详解

【jenkins凭证添加】

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

【gitlab添加ssh-jenkins公钥】

# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上
2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

```bash

#测试连接

[root@jenkins ~]# yum install git -y

[root@jenkins ~]# git clone git@192.168.15.99:root/test.git

正克隆到 ‘test’…

The authenticity of host ‘192.168.15.99 (192.168.15.99)’ can’t be established.

ECDSA key fingerprint is SHA256:DFb2biFB980EAZRnGHHDWRQXOxFUihX78s2nBvGIEyk.

ECDSA key fingerprint is MD5:e8:6c:e3:28:70:39:d1:a7:d1:ec:27????e3:12:8e:ba.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘192.168.15.99’ (ECDSA) to the list of known hosts.

remote: Enumerating objects: 6, done.

remote: Counting objects: 100% (6/6), done.

remote: Compressing objects: 100% (2/2), done.

remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0

接收对象中: 100% (6/6), done.

[root@jenkins ~]# ll |grep test

drwxr-xr-x 3 root root 30 8月 15 15:07 test

[root@jenkins ~]# cat test/test

123

123

123

``

7、Jenkins部署Java

#基本流程
1、创建项目
[root@jenkins ~/hzl]# git clone git@gitee.com:xxxxx/xxxxxx.git #代码下载
[root@jenkins ~/hzl]# git remote add origin git@192.168.15.99:root/test.git #添加远程仓库
[root@jenkins ~/hzl]# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@192.168.15.99:root/test.git
fetch = +refs/heads/*:refs/remotes/origin/*
[root@jenkins ~/hzl]# git add .
[root@jenkins ~/hzl]# git commit -m "init"
[root@jenkins ~/hzl]# git push origin master




2、部署maven编译环境

1、下载
[root@localhost ~]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

2、解压
[root@localhost ~]# tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/

3、添加环境变量
[root@localhost ~]# ln -s /usr/local/apache-maven-3.6.3 /usr/local/maven
[root@localhost ~]# vim /etc/profile
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

[root@localhost ~]# source /etc/profile

# 测试
[root@localhost ~]# mvn -version


3、Jenkins连接maven

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

7、RBAC权限

1、系统管理 -> 全局安全配置 -> 授权策略 -> 启用Role-Based Strategy

2、创建角色
系统管理 -> Manage ans Assign Roles ->

8、Jenkins构建变量

Jenkins变量也被称为参数化构建

1》Git分支列表

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

2》级联参数

# Active Choices Parameter
return ["test1:selected", "test2", "test3"]
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/7d9e501df0b544ac8c7fb52cbf29dd28.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NTk3Mjc4MQ==,size_16,color_FFFFFF,t_30)
````bash
if (JILIAN.equals("test1")) {
return ["JL11", "JL12", "JL31"]
} else if (JILIAN.equals("test2")) {
return ["JL21", "JL22", "JL23"]
} else if (JILIAN.equals("test3")) {
return ["JL31", "JL32", "JL33"]
} else {
return ["Unknown project"]
}

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

9、Jenkins构建maven

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目

【maven安装】

#配置maven环境
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz


# 移动到/usr/local
mv apache-maven-3.6.3 /usr/local/
cd /usr/local/apache-maven-3.6.3/


# 添加环境变量
cat >> /etc/profile <<EOF
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

#重新加载
source /etc/profile


#测试安装

@Devops jenkins安装jenkins的项目构建详解

【配置maven】

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

【安装maven插件】

@Devops jenkins安装jenkins的项目构建详解

【创建Java代码仓库】

@Devops jenkins安装jenkins的项目构建详解

【创建maven仓库】

使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库

#创建仓库
mkdir -pv /data/software/repository
chown jenkins.jenkins /data/software/repository/



#使用root账户修改Maven的settings.xml文件(指定仓库目录和阿里云镜像)
# 修改/usr/local/apache-maven-3.6.3/conf/setting.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地仓库-->
<localRepository>/data/software/repository</localRepository>

<mirrors>
<!--阿里云镜像-->
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
...
...
</settings>

【构建测试】

@Devops jenkins安装jenkins的项目构建详解

10、配置tomcat

#安装
wget https://ftp.wayne.edu/apache/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz

tar xf apache-tomcat-9.0.41.tar.gz

mv apache-tomcat-9.0.41 /usr/local/ # 注:可修改,默认8080端口

Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置, 添加用户及权限

#修改tomcat用户
vim /usr/local/apache-tomcat-9.0.41/conf/tomcat-users.xml
#用户和密码都是:tomcat

<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>




#为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置(表示只用本登录使用(注释即可))
vim /usr/local/apache-tomcat-9.0.41/webapps/manager/META-INF/context.xml
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->




#重启tomcat
cd /usr/local/apache-tomcat-9.0.41/
./bin/shutdown.sh #停止tomcat
./bin/startup.sh #启动tomcat




#出现的问题:
-----------------------------------------------------------------------------------------------------------------
[root@jenkins-test /usr/local/tomcat/bin]# ./startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
#解决:(tomcat运行于java环境)
#安装java
yum install java-1.8.0-openjdk* -y

---------------------------------------------------------------------------------------------------------------------------------------






#启动tonmcat
[root@jenkins-test /usr/local/tomcat/bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.








#安装成功tomcat.如下所示(默认端口8080);

@Devops jenkins安装jenkins的项目构建详解

manager webapp登录管理:使用之前创建的tomcat用户

@Devops jenkins安装jenkins的项目构建详解

Tomat web管理:

@Devops jenkins安装jenkins的项目构建详解

11、构建maven项目

#Jenkins中自动构建项目的类型有很多,常用的有以下三种:
1/*风格软件项目(FreeStyle Project)
2/Maven项目(Maven Project)
3/流水线项目(Pipeline Project)


#每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择

【创建项目】

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

【测试编译】

@Devops jenkins安装jenkins的项目构建详解

【部署】

安装一个插件

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解

@Devops jenkins安装jenkins的项目构建详解


@Devops jenkins安装jenkins的项目构建详解

12、SonarQube

SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测