大纲
- 思路讲解
- jenkins 安装
- gitlab 安装
- jenkins 与 gitlab配置自动化部署
- 测试
- 可能存在的问题
思路讲解
gitlab->pull(其他操作)->webHook(监听到)->触发(jenkins构建操作)->jenkins构建->pull 指定项目->构建脚本->完成。
jenkins安装
下载jenkins war
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
- 1
设置jenkins 根目录位置(linux centos 默认安装在/root/.jenkins目录下)
a. 编辑 bash_profile 文件
vi /root/.bash_profile
b. 添加如下内容(设置jenkins根目录)
export JENKINS_HOME=/opt/jenkins
c. 生效更改
source /root/.bash_profile
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
启动jenkins(指定8888端口号)[这里只是演示,正常情况下不要这么启动,将war放到tomcat下]
nohup java -jar jenkins.war --httpPort=8888 &
- 1
- 2
查看启动情况
ps aux | grep jenkins
- 1
- 2
web访问
http://ip:8888
- 1
- 2
安装向导
根据页面显示的路径查看秘钥并填入
cat /opt/jenkins/secrets/initialAdminPassword
- 1
安装官方推荐插件,选择 左侧 选项进行安装
注:这里有些插件提示安装失败,没有关系,正常情况下不会影响使用,可在后台进行插件二次安装.
创建用户
开始使用
gitlab安装
获取 bitnami gitlab 一键安装包
wget https://bitnami.com/redirect/to/137681/bitnami-gitlab-8.14.3-0-linux-x64-installer.run
- 1
注意: 现在bitnami gitlab 已经不提供.run文件下载,想获取其他版本可以百度 google 一下
bitnami gitlab 官网下载地址为: https://bitnami.com/stack/gitlab
安装gitlab
a. 修改权限(可执行)
chmod +x bitnami-gitlab-8.2.3-4-linux-installer.run
b. 执行.run文件
./bitnami-gitlab-8.2.3-4-linux-installer.run
- 1
- 2
- 3
- 4
- 5
- 6
安装细节
web访问
ip:端口
以上就完成了基础环境的搭建。
jenkins 与 gitlab自动化部署配置
新建git仓库
初始化git仓库
克隆代码并上传到git 仓库
1. git clone xxx.git
2. vim index.html
<html>
<head>
<title>Demo</title>
</head>
<body>
<h1>hello world!</h1>
</body>
</html>
3. git add .
4. git commit -m 'init'
5. git push -u origin master
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
jenkins 安装必要插件
- Build Authorization Token Root Plugin(游客也可以进行job build)
jenkins->系统管理->管理插件
创建任务(选择自由风格)
git源配置
构建触发器
以上生成的token用作 gitlab web_hook 通信使用 下方的url地址形式即web-hook url地址
JENKINS_URL/job/Demo/build?token=TOKEN_NAME
构建
这里我们使用 Execute shell 形式 即 shell 脚本语言进行构建操作
由于构建的是php项目 只需要把源代码发送到web目录下即可。
注意: 构建部分就是你项目构建的时候要做的事情 如果是java 要使用maven 或者 gradle构建的话 可执行相应的脚本。 此部分已经完成代码pull动作 接下来要做什么 由你来指定。
gitlab hook 配置
来到你的项目下 找到webHook配置 进入
配置完成后 点击下方test 进行测试
以上 配置结束。
测试
修改jenkins_demo 内容
push 远程git库
自动构建完成
可能存在的问题
- 测试gitlab webhook时 可能会出现通信问题,原因时jenkins本身禁止跨站点请求