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基本使用的主要内容,如果未能解决你的问题,请参考以下文章