文章目录
Devops
一、jenkins安装步骤
1、安装jdk
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
#如下所示:安装成功
7、查看用户密码
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
8、测试(选择插件安装)
9、安装插件
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改为国内插件下载地址:如下所示
系统管理 -> 插件管理 ->
方式一:system restart jenkins
方式二:浏览器重启,如下所示
重新登录
11、安装中文插件
手动安装插件地址目录:/var/lib/jenkins/plugins
#下载中文汉化插件
Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"
#下载完成重启生效(插件安装完成)
变成中文模式
二、jenkins的使用
1、Jenkins用户权限
利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
1》下载插件:Role-based Authorization Strategy
完成后直接重启即可
功能:全局安全配置下 --> 访问控制下载的插件Role-based选项
2》开启权限全局安全配置
2、创建角色 (拥有管理员权限功能)
1》进入安全配置下–> 启用用户允许登录,并保存
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Item roles(项目角色): 针对某个或者某些项目的角色
Node roles(节点角色):节点相关的权限
添加用户test
test: 设置成所有的用户都有查看的权限
Alvin: 设置以alvin开头的项目有超管权限
Oldboy:设置以oldboy开头的项目有超管权限
3、用户创建
切换用户查看
4、Jenkins凭证管理
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
凭据添加
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私有仓库密码存储类型。
gitlab测试
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
6、Jenkins中的凭证使用
# 系统管理 -> Manage Credentials -> 全局
# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上
2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中
# Jenkins连接远程机器
1、系统管理 -> 系统配置 -> SSH remote hosts
2、系统管理 -> 系统配置 ->
构建流水线
>如果错误:添加ssh凭证,
如下所示:
>凭证完成后如下所示:
【使用ssh凭证添加连接远程server】
# Jenkins连接远程机器
1、系统管理 -> 系统配置 -> SSH remote hosts
2、系统管理 -> 系统配置 ->
SSH remote host
Publish over SSH
【jenkins凭证添加】
【gitlab添加ssh-jenkins公钥】
# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上
2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中
```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
7、RBAC权限
1、系统管理 -> 全局安全配置 -> 授权策略 -> 启用Role-Based Strategy
2、创建角色
系统管理 -> Manage ans Assign Roles ->
8、Jenkins构建变量
Jenkins变量也被称为参数化构建
1》Git分支列表
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"]
}
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
#测试安装
【配置maven】
【安装maven插件】
【创建Java代码仓库】
【创建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>
【构建测试】
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);
manager webapp登录管理:使用之前创建的tomcat用户
Tomat web管理:
11、构建maven项目
#Jenkins中自动构建项目的类型有很多,常用的有以下三种:
1/*风格软件项目(FreeStyle Project)
2/Maven项目(Maven Project)
3/流水线项目(Pipeline Project)
#每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择
【创建项目】
【测试编译】
【部署】
安装一个插件
12、SonarQube
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测