Jenkins部署
1 简介
Jenkins官网: https://jenkins.io/index.html
官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Home
jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。
2 安装基础环境
2.1 jdk
卸载原有jdk
yum -y remove java*
安装jdk
yum -y install java-1.8.0-openjdk-devel
创建软链接
ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64 /usr/local/java
2.2 maven
下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
解压
tar zxf apache-maven-3.6.2-bin.tar.gz
mv apache-maven-3.6.2 /usr/local/maven
修改环境变量
export JENKINS_HOME="/data/jenkins" #jenkins数据存储目录
MAVEN_HOME="/usr/local/maven"
JAVA_HOME="/usr/local/java"
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:${PATH}:$MAVEN_HOME/bin:$PATH
2.3 安装jenkins
wget http://ftp-nyc.osuosl.org/pub/jenkins/war-stable/2.190.1/jenkins.war
将war包放入Tomcat运行
运行后访问 http://ip:prot/jenkins
如: http://127.0.0.1:8080/jenkins
2.4 配置
修改jenkins插件更新地址
进入jenkins目录
sed -i 's/https:\/\/updates.jenkins.io\/update-center.json/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins\/updates\/update-center.json/g' hudson.model.UpdateCenter.xml
进入updates目录
sed -i 's/http:\/\/updates.jenkins-ci.org\/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
首次进入要求输入密码,初始密码可以在Tomcat启动日志中查看,也可以在$JENKINS_HOME/secrets/initialAdminPassword
查看。
粘贴查到的密码
选择安装的插件,我这里只安装了一个中文语言包
等待安装
我这里不创建账号,直接使用admin,进入后修改admin密码
可以使用了
2.5 汉化问题
可能出现部分汉化的情况,这种问题与系统字符编码有关
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LC_ALL=en_US.UTF-8
2.6 中文乱码
执行fc-list :lang=zh
查看是否有中文字体
复制一个需要的字体
cp simhei.ttf /usr/share/fonts/
执行以下命令更新字体
fc-cache -fv
验证字体是否安装成功
执行fc-list :lang=zh
能看到simhei说明安装成功
3 容器部署
一条命令
docker run -d \
-p 8080:8080 \
-p 50000:50000 \
-e TZ="Asia/Shanghai" \
-e JAVA_OPTS="-Duser.timezone=Asia/Shanghai -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/jenkins-data:/data/jenkins \
--restart=always \
--privileged=true \
--name jenkins \
yaokun/jenkins:latest
4 异常处理
在变更配置,或者升级插件及Jenkins本身时,会因为不兼容、配置不当或其他原因导致jenkins无法使用。
在此建议大家首先在测试环境进行测试。可以提前将${JENKINS_HOME}/config.xml
备份一下,然后配置失败的时候迅速还原。
还有一种情况,配置 GitLab 和 Jenkins 用户认证时弄的 Jenkins 没有权限了。修改${JENKINS_HOME}/config.xml
中的<useSecurity>true</usrSecurity>
为<useSecurity>false</usrSecurity>
以关闭 Jenkins 的权限认证,然后重启 Jenkins ,重新配置管理的权限,最后开启权限认证功能。可以暂时开启允许任何人访问。