依赖环境
下载安装
1. 下载Jenkins
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
2. 导入密钥
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
3. 安装
yum install jenkins
相关配置
1. 查看安装目录
rpm -ql jenkins
目录说明:
/etc/init.d/jenkins 启动配置文件
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins jenkins配置文件
/usr/lib/jenkins jenkins 的安装目录
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins git代码及构建项目存储目录
/var/lib/jenkins 默认的Jenkins_home
/var/log/jenkins 日志文件
2. 修改端口号及用户
vim /etc/sysconfig/jenkins
默认是8080,我这里改成了9898
root拥有所有权限
3.关闭“防止跨站点请求伪造”
Jenkins2.2版本及以上已无此配置项,不配置的话git推送触发钩子消息http通知,会被拦截报403 配置文件中添加:
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
4.修改jdk配置
查看java路径
which java
修改启动配置
vim /etc/init.d/jenkins
5. 设置开机启动jenkins (可选)
chkconfig jenkins on
启动Jenkins
1. 启动
service jenkins start
如果提示下图,追加执行
systemctl daemon-reload
如果还报错的话,查看启动日志:
journalctl -xe
查看Jenkins启动状态
systemctl status jenkins
2. 打开Jenkins
获取密码
cat /var/lib/jenkins/secrets/initialAdminPassword
安装推荐插件---注册管理员账号---一直到最后
3.相关配置
配置jdk 及 maven
安全设置中,此处勾选 ps: git推送代码触发钩子推送通知,虽然关闭了“防止跨站点请求伪造”,但此处不勾选的话,还是会提示401无权限
4. 安装插件
1. 安装maven插件,在新建任务时会显示maven任务可选,方便配置 (可选)
2. 通过ssh推送文件,并可以执行shell命令(适用于Jenkins与测试服务器不同主机,同主机可忽略)
获取ssh密钥
cat /root/.ssh/id_rsa
没有文件的话 则以下命令生成,一直回车即可
ssh-keygen -t rsa
配置jenkins中的ssh服务
需将生成的公钥 id_rsa.pub 添加到测试服务器的 authorized_keys 中 (/root/.ssh/authorized_keys),有命令可以直接追加,自行百度
重启Jenkins service jenkins restart
5.新建任务
配置钩子,我用的是阿里code
BUILD_ID=123456
echo "stop服务开始"
pidlist=`ps -ef|grep bp.jar | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "Java"|grep -v "grep"
if [ "$pidlist" = "" ]; then
echo "no bp pid alive"
else
echo "bp Id list :$pidlist"
for pid in ${pidlist}
{
kill -9 $pid
echo "KILL $pid:"
echo "service stop success"
}
fi
echo "stop服务脚本结束"
echo "start服务脚本开始"
dir=/usr/local/mp/bp
echo "start复制构建项目开始"
cp -rf /var/lib/jenkins/workspace/bp/bp/target/dist/* $dir
echo "stop复制构建项目结束"
JAVA_HOME=/usr/local/java/jdk1.8.0_231
cd $dir
echo dir=$dir
jar=$(find /lib -type f -name *.jar)
classpath=$dir/*:$dir/lib/*:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
echo classpath=$classpath
echo ---------------------------------------------
nohup $JAVA_HOME/bin/java -classpath $classpath -XX:-UseGCOverheadLimit -Xms1024m -Xmx2048m -jar $dir/bp.jar &
echo "start服务脚本结束"