jenkins 安装以及svn,git持续集成
目录
环境准备
- 三台服务器
- jenkins 部署包以及各种插件,可在百度网盘中找到:jenkins-2.330-1.1.noarch.rpm
- 插件地址: 水木清华jenkins插件地址
- 持续集成概念图(图片来源于网络,侵删)
jenkins rpm安装
- 安装 jdk1.8
- 上传 jenkins-2.335-1.1.noarch.rpm 到 /opt 目录
- 安装:
rpm -ivh jenkins-2.330-1.1.noarch.rpm
- 设置jdk:
vi /etc/init.d/jenkins
candidates=" /etc/alternatives/java /usr/lib/jvm/java-1.8.0/bin/java /usr/lib/jvm/jre-1.8.0/bin/java /usr/lib/jvm/java-11.0/bin/java /usr/lib/jvm/jre-11.0/bin/java /usr/lib/jvm/java-11-openjdk-amd64 /usr/bin/java /usr/local/jdk8u322-b06/bin/java "
- 启动:
service jenkins start
- 安装插件,将百度云的 软件/jenkins/plugins 下的内容复制到 /var/lib/jenkins/plugins
jenkins war安装
- 安装 jdk1.8
- 创建目录:
mkdir /usr/local/jenkins
- 上传 jenkins.war 到 /usr/local/jenkins 目录
- 启动
nohup java -jar jenkins.war --httpPort=8080 --prefix=/jenkins &
jenkins 使用nginx做代理访问
- 修改配置文件,找到对应位置:
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080" JENKINS_ARGS="--prefix=/jenkins"
- 启动:
service jenkins start
- 安装 nginx,并修改 nginx 的配置文件,添加以下映射:
vi /usr/local/nginx/conf/nginx.conf
location /jenkins/ { proxy_pass http://127.0.0.1:8080; }
- 启动 nginx
/usr/local/nginx/sbin/nginx
- 访问 http://192.168.3.112/jenkins
jenkins 和 svn 整合成持续集成
- 安装 svn
- 安装 maven,获取安装路径为:/usr/local/apache-maven-3.6.3
- 访问 localhost:8080,按照提示完成初始化操作,跳过插件安装步骤
- 配置 maven、jdk : Manage jenkins -> Global Tool Configuration
- 配置 svn 的用户名和密码:Manage jenkins -> Manage Credentials -> 添加凭据
- 配置远程服务器地址:
- 由于jenkins需要有maven仓库读写的权限:
chmod 777 /usr/local/apache-maven-3.6.3/repository
- 将项目上传到 svn 中,并获得仓库地址:svn://192.168.3.110/ci
- 新建一个任务
- 在 svn 服务器里面创建一个钩子程序,在 post-commit 之后触发自动编译部署
注释原有的,内容如下:cd /var/svn/repository/ci/hooks cp post-commit.tmpl post-commit chmod +x post-commit vi post-commit
#REPOS="$1" #REV="$2" #mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf # token为项目触发那里设置的 curl -X post -v -u admin:admin http://192.168.3.112:8080/jenkins/job/ci/build?token=ci_token
jenkins 和 github 整合成持续集成
- 在 jenkins 服务器上安装 git,用于检出代码
- 在 jenkins 管理界面配置 git
- 在github 仓库下创建 webhook:项目->settings->webhooks
- 在 jenkins 关闭 "防止跨站点请求伪造"
可能出现的问题
- daemonize is needed by jenkins-2.330-1.1.noarch
yum install -y epel-release yum install -y daemonize
- AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"?
yum install -y fontconfig service jenkins restart
- 设置 jenkins 部署启动之后不删除进程?
在 脚本开头增加 BUILD_ID=DONTKILLME
本文来自博客园,作者:君子如珩~,转载请注明原文链接:https://www.cnblogs.com/shulipeng/p/16267680.html