1.简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
2.Jenkins自动化部署实现原理
3.Jenkins部署环境 基本环境:
1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。
2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。
3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle
以上是自动化部署java程序jenkins需要的基本环境,请自己提前安装好,下面着重讲解Jenkins的安装部署配置。java需要安装两个,一个yum安装给jenkins依赖用,一个源码安装给jenkins配置用
4.Jenkins安装 1.下载依赖 yum install gcc c++ epel* wget
sudo wget -O /etc/yum.repos.d/jenkins.repo pkg.jenkins.io/redhat-stab… 2.导入秘钥
sudo rpm --import pkg.jenkins.io/redhat-stab… 3.安装
yum install jenkins java git -y #等待安装时间较长,约25min 4.启动前检查是否已安装jdk
java #显示java参数即证明已安装jdk 5.查找jenkins安装路径
rpm -ql jenkins
jenkins相关目录释义: (1)/usr/lib/jenkins/:jenkins安装目录,war包会放在这里。 ( 2 ) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配 置。 (3)/var/lib/jenkins/:默认的JENKINS_HOME。 (4)/var/log/jenkins/jenkins.log:jenkins日志文件。
6.配置jenkins (1)查找jenkins端口
vim /etc/sysconfig/jenkins :set ignorecase /jenkins_port 回车 (2)查看其他端口占用情况
netstat -ntlp systemctl daemon-reload
systemctl enable jenkins
systemctl start jenkins #启动jenkins,启动较慢需要等待
5)验证jenkins能否打开 在宿主机浏览器输入http://IP:Port 我这里输入:http://192.168.114.128:8080(修改端口后输入:http://192.168.114.128:8899)。
cat /var/lib/jenkins/secrets/initialAdminPassword =>获取密码=>输入密码=>继续 =>安装插件=>retry几次可安装成功 =>注册账号 (记录好账号密码) =>开始使用Jenkins
CentOS7安装jdk1.8 maven3.6 cd /usr/local/
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "download.oracle.com/otn-pub/jav…" tar xzf jdk-8u141-linux-x64.tar.gz
vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_141 export CLASSPATH=.:JAVA_HOME/lib/dt.jar:PATH:PATH:MAVEN_HOME/bin
wget mirrors.tuna.tsinghua.edu.cn/apache/mave…
tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/ mv /usr/local/apache-maven-3.6.3/ maven source /etc/profile
mvn -v 进行全局工具配置
一,jenkins全局工具配置,maven.jdk和git需要配置路径,
管理插件安装-可选插件-Role-based Authorization Strategy 与 Authorize Project 安装下载 GitLab
Localization: Chinese(中文显示插件)Credentials Binding(凭证插件)Maven Integration(maven项目构建必须要) Git(拉取代码插件publish over ssh/ssh plugin(连接凭证) Deploy to container(部署到远程服务器容器)
which git
/usr/bin/git 安装路径
需要增加jdk的安装路径,上面maven配置默认,最下面那个新增maven填写安装路径
系统配置里面增加三个全局属性
JAVA_HOME
/usr/local/jdk1.8.0_141
M2_HOME /usr/local/maven
PATH+EXTRA $M2_HOME/bin
gitlab配置token作为gitlab访问秘钥,
Maven仓库地址更改,要改一个地方
vi /usr/local/maven/conf/settings.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
mvn clean package #mvn打包命令
二,管理插件安装-可选插件-Role-based Authorization Strategy 与 Authorize Project 安装下载
Localization: Chinese(中文显示插件)Credentials Binding(凭证插件)Maven Integration Git(拉取代码插件publish over ssh/ssh plugin(连接凭证) GitLab
jenkins默认添加的所有用户都是拥有最高权限,这个插件用来分配权限
两个插件安装成功
三,配置全局安全Configure Global Security- 选上保存
管理角色授权,分配权限工具
jenkins误删管理员权限补救办法
1.修改jenkins服务器config.xml 我这里jenkins路径是 /var/lib/jenkins。
编辑之前先进行备份:
cp config.xml config.xml.bak 将 true 改为false。
2.重启jenkins service jenkins restart 此时已经关闭登录认证,不需要登录就可以访问jenkins地址,并具有所有权限。
3.修改全局安全配置 安全域选择 Jenkins’ own user database,否则会导致无法登录。网络策略我用的是 Role-Based Strategy(用户角色策略),这里再重新勾回去。然后重新配置一下权限,就可以恢复到之前的状态。
4.Jenkins凭证管理
下载安装插件
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。
系统配置里面添加gitlab的token并且测试成功
采用ssh秘钥连接认证
到jenkins服务器上生成公私钥,公钥放复制到gitlab上,私钥复制放jenkins上
ssh-keygen -t rsa
cat id_rsa.pub
cat id_rsa
ssh配置成功
假如下载插件失败可以更换下载地址