admin管理员组

文章数量:1602058

一、前言

有人问,为什么要用Jenkins?我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已经上线了,需要把服务关,在部署到服务器上,将项目启动起来,这个时候可能某个用户正在操作某些功能上的东西,如果你隔三差五的部署一下,这样的话对用户的体验也不好,自己也是烦的很,总是打包拖到服务器上。希望小型企业工作人员学习一下,配置可能复杂,但是你配置好了之后,你只需要把代码提交到Git或者Svn上,自动构建部署,非常方便

二、Jenkins简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

三、jenkins基本工作原理


以上为基本工作原理,只是为了开发人员更好的理解画的(个人理解),详情可查看官方文档:https://www.jenkins.io/zh/

四、docker安装jenkins

  1. 启动docker,下载Jenkins镜像文件
docker pull jenkins/jenkins

  1. 创建Jenkins挂载目录并授权权限

在服务器上先创建一个jenkins工作目录 /data/jenkins,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对容器内的配置文件进行修改。 如果我们不这样做,那么如果需要修改容器配置文件,将会有点麻烦,因为虽然我们可以使用docker exec -it --user root 容器id /bin/bash 命令进入容器目录,但是连简单的 vi命令都不能使用

mkdir -p /data/jenkins
chmod 777 /data/jenkins
  1. 创建并启动Jenkins容器
docker run -d -p 10240:8080 -p 10241:50000 -v /data/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins
  1. 获取初始密码
docker logs jenkins

  1. 修改jenkins插件镜像源

  • hudson.model.UpdateCenter.xml里的内容

    将 url 修改为 清华大学官方镜像:https://mirrors.tuna.tsinghua.edu/jenkins/updates/update-center.json

    这里有些进入jenkins下载插件会报错: java.UnknownHostException: updates.jenkins.io
    所以这里还要再修改另一个文件/data/jenkins/updates/default.json.
    执行以下:
sed -i 's/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu\/jenkins/g' /data/jenkins/updates/default.json && sed -i 's/http:\/\/www.google/https:\/\/www.baidu/g' /data/jenkins/updates/default.json

参考文章

然后重新启动jenkins,至此jenkins安装完毕

五、Centos安装Jenkins并设置自启动

  • 下载jenkins.war

https://www.jenkins.io/doc/book/installing/war-file/

  • 准备java环境,最好11及以上

  • 编写自启动脚本

#!/bin/bash
###主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的权限
JAVA_HOME=/data/jdk17
pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
if [ "$1" = "start" ];then
if [ $pid -gt 0 ];then
echo 'jenkins is running...'
else
### java启动服务 配置java安装根路径,和启动war包存的根路径,这两个路径根据自己实际放的位置更改
nohup $JAVA_HOME/bin/java -jar /data/jenkins/jenkins.war --httpPort=10240 > system.log 2>&1 &
fi
elif [ "$1" = "stop" ];then
exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
echo 'jenkins is stop..'
else
echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
fi
  • 配置开机启动服务,到 /lib/systemd/system 服务注册目录下创建 jenkins.service,内容如下
[Unit]
Description=Jenkins
After=network.target

[Service]
Type=forking
### jenkins.sh的路径
ExecStart=/data/jenkins/jenkins.sh start
ExecReload=
ExecStop=/data/jenkins/jenkins.sh stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 创建好服务后,执行一下命令刷新配置
systemctl daemon-reload
  • 启动脚本
systemctl start jenkins.service
  • 查看启动脚本状态是否启用成功(失败的话,看错误日志进行修改)
systemctl status jenkins.service

  • 设置开机启动
systemctl enable jenkins.service
  • 查看设置开机启动的服务列表
systemctl list-units --type=service |grep jenkins

  • 停止服务命令
systemctl stop jenkins.service

这些搞完了就可以重启服务器试试看了

  • 这种方式的jenkins的目录路径位于 /root/.jenkins

在这里配置国内源,解决上面的 java.UnknownHostException: updates.jenkins.io问题

不推荐docker的安装方式,因为jenkins需要的jdk,git,maven环境配置起来很麻烦

六、jenkins汉化

  • 安装Locale plugin和Localization: Chinese (Simplified)这两个插件


  • 配置语言
Manage Jenkins=>System Configuration=>Configuration System


Locale ,设置Default Language为:zh_CN

一定要勾选:"Ignore browser preference and force this language to all users" 并保存

然后重启,汉化成功

参考文章
参考文章

本文标签: 汉化DockerJenkinsCENTOS