jenkins基本使用

Posted givenchy_yzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins基本使用相关的知识,希望对你有一定的参考价值。

jenkins持续集成工具

Jenkins安装

1、下载
安装java
[root@localhost ~]# yum install java-1.8.0-openjdk* -y
方式一:
#下载安装包
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm
#安装Jenkins
[root@localhost ~]# yum install jenkins-2.249.1-1.1.noarch.rpm -y
#启动
[root@localhost ~]# systemctl start jenkins

方式二:
#下载Jenkins源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 安装认证Key
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

# 安装JenKins
yum install jenkins


解锁Jenkins
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
5bbc1a542bd24ac9a7ae93e62ddbf8f2
把得到的代码粘贴jenkins网站
插件一个都不要装

jenkins 插件管理

将压缩包移入服务器
解压
tar -xf plugins.tar.gz
并将压缩包内所有插件移入/var/lib/jenkins/plugins
mv plugins/* /var/lib/jenkins/plugins

#切换至配置文件目录
cd /var/lib/jenkins/updates
#换源
sed -i ‘s/https://updates.jenkins.io/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ default.json
sed -i ‘s/http://www.google.com/https://www.baidu.com/g’ default.json

系统管理 -> 插件管理 -> 高级
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

Jenkins用户权限

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

开启权限全局安全配置




Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Item roles(项目角色): 针对某个或者某些项目的角色
Node roles(节点角色):节点相关的权限
Base: 设置成所有的用户都有查看的权限
test: 设置以te开头的项目有超管权限


点击保存---->再次进入若刚刚添加的用户出现即为添加成功
注意:当我们要用正则匹配以XXX为结尾的用户时:

使用*.java是不能创建成功的如下图:小老头会生气的
使用.*java是可以的

创建用户

添加插件
系统管理—>插件管理---->可选插件----->搜索框输入Role-based Authorization Strategy



分配角色



注意:如果我们给用户项目权限而不给用户任何全局权限的话,用户同样访问不了项目中的内容

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私有仓库密码存储类型。

配置密码登录






配置私钥登录





3、Jenkins中的凭证

# 系统管理  ->  Manage Credentials -> 全局
# Jenkins通过SSH下载代码
    1、将Jenkins服务器中的公钥放到GitLab上
    [root@k8s-node-02 ~]# ssh-copy-id -i .ssh//id_rsa.pub 192.168.13.11
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh//id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@192.168.13.11's password: 
    Number of key(s) added: 1
    Now try logging into the machine, with:   "ssh '192.168.13.11'"
    and check to make sure that only the key(s) you wanted were added.

    2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中

jenkins 部署html

新建任务—>输入任务名称—>点击构建一个自由项目—>点击确定保存
按照下图操作

因为jenkin拉取gitlab上的代码需要凭证(credentails),所以我们需要去添加凭证(credentails):
将jenkins的公钥复制到gitlab上步骤如下:

[root@k8s-node-02 ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDee/TPOnJN9sszG67OES0T92OTn2j6UitvL8pqhlHie3hYa1QQiZ3XFHEmh5bQ1VKMkiakGLp009r4IjWr/h2B386U8yJlrzD0xS/as4lX5Iry2E+zINHEZzuEKGPS7GbW9AtbXyiGrA6yxeGztXpl3+Ja3N1n5pIJ0+az6f+3DPgi+gTvCoxmLpra2zw1fbhCLs6L0ljOdVaTf9REjNp0cfpL6eCLdUDDI/apfMM8NtSkya9b/b/CwKuufxppbEkcjewE/qMmHMyyhxYjw/NhKrRS7p2NgK3e2mBo+zZ2NxtQUKgt71YbYih0Da10o3jjaVBWgSAz1NpEdrLI0Xd root@k8s-node-02
复制上面代码粘贴到gitlab---->右上角用户头像---->设置(setting)---ssh密钥(key)将公钥粘贴至选项框即可
以上步骤保证jenkins服务器可以下载gitlab中的代码后,才可在jenkins中添加凭证

点击系统管理—>manage credentails—>jenkins—>全局凭据(unrestricted)---->添加凭据---->ssh username with private key----->描述随意,用户root,将jenkins的私钥粘贴进privatekey的输入框中---->点击确定
此时凭证就生成完毕
将git仓库url粘贴后,选择对应的凭证即可实现jenkins连接git仓库

ssh连接主机
1、系统管理 -> 系统配置 -> SSH remote hosts
点击系统管理---->系统配置---->ssh remote hosts---->填写相关信息(填写之前必须将jenkins服务器的私钥上传到jenkins上,同时将公钥发送给远程主机,进行免密)

2、系统管理 -> 系统配置 -> Publish over SSH (通用)配置如下图

新增构建步骤:
Jenkins主页---->点击一个自定义的项目---->配置---->构建触发器---->点击增加构建步骤(多用于编译代码)

构建后操作多用于部署重启服务等操作
如下图:

exec command里面多为一些脚本内容,若在其中添加了创建文件的shell语句,则文件存放在登录用户的家目录下
点击保存后,立即构建,并查看控制台输出


在Jenkins服务器中执行

#查看项目存放目录(包含项目的配置等一些基础信息)
[root@k8s-node-02 ~]# cd /var/lib/jenkins/jobs/
[root@k8s-node-02 jobs]# ls
devops-test2  

#查看代码存放目录
[root@k8s-node-02 jobs]# cd /var/lib/jenkins/workspace/
[root@k8s-node-02 workspace]# ls
devops-test2 
[root@k8s-node-02 workspace]# ls devops-test2
html  README.md

构建Java项目


# gitlab拉取Java代码包
[root@k8s-master-01 mnt]# wget http://www.mmin.xyz:81/jenkins/chenyang0910-springboot-master.zip
[root@k8s-master-01 mnt]# unzip chenyang0910-springboot-master.zip

#将代码传至代码仓库
[root@k8s-master-01 mnt]# cd springboot/
[root@k8s-master-01 springboot]# ls
mvnw  mvnw.cmd  pom.xml  src
[root@k8s-master-01 springboot]# git init
初始化空的 Git 版本库于 /mnt/springboot/.git/
#连接远程仓库
[root@k8s-master-01 springboot]# git remote add origin git@192.168.13.11:root/java-1.git
[root@k8s-master-01 springboot]# git add .
[root@k8s-master-01 springboot]# git commit -m "java"
[master(根提交) fa86a1b] java
 12 files changed, 749 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 
 ......
 [root@k8s-master-01 springboot]# git push origin master
Counting objects: 29, done.
......
此时在gitlab上刷新Java-1.git,发现代码上传成功

#Jenkins创建一个新的自由项目:详情看上面Jenkins创建项目
描述:自定义
源码管理选择git
Repository URL:填写gitlab刚刚创建的Javassh链接
凭证(Credentials):之前添加的gitlab凭证即可
指定分支:master
因为Java是编译型语言,所以我们需要勾选构建时操作,进行编译,选择执行shell

#因为Java是编译型语言,所以我们在部署之前需要将Java的编译器(maven)配置好
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
或
export PATH=$PATH:/usr/local/maven/bin		
		[root@localhost ~]# source /etc/profile
		
		# 测试
		[root@localhost ~]# mvn -version

Jenkins连接maven
系统管理---->全局工具配置---->新增jdk---->我填的是JDK1.8(别名随意添加)---->不勾选自动安装---->java-home填写jenkins服务器java-xxx-openjdk的路径如:/usr/lib/jvm/java-1.8.0-openjdk(必须安装Java-JDK)---->配置maven---->点击新增maven---->name自定义(我用的MVN1)---->MAVEN-HOME填写Jenkins中maven的家目录---->点击保存

系统管理---->系统配置---->全局属性---->环境变量---->将Jenkins中的maven环境变量添加即可如下图


安装maven插件
系统管理---->插件管理---->点击可选插件---->搜索maven integration---->安装后重启,重新登录

插件安装成功后
点击项目---->配置---->构建时,执行shell中,执行
#!/bin/bash
mvn clean package---->点击保存如下图
注意:这里必须加#!/bin/bash否则会报错

保存后点击立即构建,查看控制台输出即可,此时会进行编译,编译过程在几分钟到十几分钟不等

构建maven仓库

为了加快编译速度这里我们可以创建maven仓库,步骤如下
[root@k8s-node-02 maven]# mkdir -pv /data/software/repository
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/software’
mkdir: created directory ‘/data/software/repository’

[root@k8s-node-02 maven]# chown -R jenkins.jenkins /data/software/repository/

[root@k8s-node-02 maven]# vim /usr/local/apache-maven-3.6.3/conf/settings.xml
添加:

  <!--本地仓库-->          
  <localRepository>/data/software/repository</localRepository>


添加:

<!--阿里云镜像-->
    <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>

保存后立即构建发现下载地址变成阿里云的地址了

因为Java需要使用Tomcat服务器,所以我们需要配置tomcat

2、部署运行环境
	
	1、部署tomcat
		wget https://ftp.wayne.edu/apache/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz
	
	2、解压
		tar -xf apache-tomcat-9.0.52.tar.gz -C /usr/local/
		
	3、建立软链接
		ln -s /usr/local/apache-tomcat-9.0.52 /usr/local/tomcat
	
	4、添加环境变量
		vim /etc/profile
		export TOMCAT_HOME=/usr/local/tomcat
		export PATH=$PATH:$TOMCAT_HOME/bin
		source /etc/profile
    5、启动tomcat
     /usr/local/tomcat/bin/startup.sh 

3、配置Jenkins操作tomcat
下载部署插件

以上是关于jenkins基本使用的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins的系统设置

DEVOPS技术实践_08:Jenkins多分支管道

使用ThinBackup插件备份 jenkins

jenkins针对不同的项目组对用户进行权限分配

jenkins的基本配置和使用

jenkins基本使用