gitlab + jenkins 自动部署

一。安装gitlab 和 jenkins

直接克隆项目

git clone [email protected]:GH16/devops.git

进入项目,直接运行, 等待五分钟左右部署(显示出错也会重启继续初始化)

?  ~ cd devops
?  devops git:(master) ls
README.en.md       docker-compose.yml jenkins            stop.sh
README.md          gitlab             start.sh
?  devops git:(master) bash start.sh 

浏览器输入 http://127.0.0.1:10080 先创建root用户的密码

登陆成功后 settings->preferences->language 可设置中文,接着配置ssh密钥

配置完ssh密钥后,创建项目

创建成功后克隆项目

?  ~ git clone ssh://[email protected]:10022/root/test_gitlab.git

进入项目,修改文件

?  ~ cd test_gitlab
?  test_gitlab git:(master) ls
README.md
?  test_gitlab git:(master) cat README.md
# test_gitlab

?  test_gitlab git:(master) echo ‘1‘ > README.md
?  test_gitlab git:(master) ? cat README.md
1
?  test_gitlab git:(master) ? 

提交测试是否成功

?  test_gitlab git:(master) ? git commit -am ‘1‘
?  test_gitlab git:(master) git push

gitlab上查看,已经提交成功

然后浏览器输入 http://127.0.0.1:18080 ,用户 admin , 秘密 12345678 登陆(可自行更改),创建任务

选择 自由风格 项目,然后创建

接着源码选 git , Repository URL 为需要部署的项目地址,这里输入http://gitlab/root/test_gitlab.git (这里需要输入容器内部的地址)

Credentials 点击添加,可以选择gitlab的用户和密码,也能用ssh等,然后点击添加的左边选择刚刚添加的用户

接着 构建触发器 ,选 Build when a change is pushed to GitLab ,里面的其他选项可以不动,Secret token 里点击Generate生成 , 然后保存 

接着点击jenkins的设置->全局设置,找到 gitlab 的设置

Connection name 链接名称随便填

Gitlab host URL 需要填gitlab的主机地址,就是访问gitlab的地址,这里输入 http://gitlab (容器里面的地址)

Credentials 同上面一样点击添加,此时类型需要选择gitlab API token

然后到gitlab,点击设置

然后访问令牌

创建一个 api 的令牌

复制这个令牌

回到 jenkins 的添加,API token 就输入上面的令牌,点击添加

接着点击添加的左边,选择刚刚创建的API,然后点击下方的 test connection, 测试连接成功,然后点击保存。

到gitlab点击管理中心,顶部最右边

接着点击系统钩子

URL里输入 jenkins 里 构建触发器的地址,即 http://jenkins:8080/project/test_jenkins

Secret Token 里输入 jenkins 里构建触发器的Secret token,即 e1135d5424f80e82ceccbb962028a11a

然后选择push events, 最后点击添加钩子

最后测试是否成功,在test_gitlab里修改文件添加

?  test_gitlab git:(master) ls
README.md
?  test_gitlab git:(master) cat README.md
1
?  test_gitlab git:(master) echo ‘2‘ > README.md
?  test_gitlab git:(master) ? cat README.md
2
?  test_gitlab git:(master) ? git commit -am ‘2‘
?  test_gitlab git:(master) git push

查看jenkins已经自动构建完成

进入test_jenkins项目,点击工作区

gitlab里的代码就自动同步到这个文件夹了

接着就是部署web服务器的路径指到这个文件夹,或者做其他的处理。

ctrl + c 取消 start.sh ,接着停止容器

^CGracefully stopping... (press Ctrl+C again to force)
Killing devops_gitlab_1             ... done
Killing devops_jenkins_1            ... done
Killing devops_gitlab-postgresql_1  ... done
Killing devops_gitlab-redis_1       ... done
?  devops git:(master) ? bash stop.sh
Removing devops_gitlab_1            ... done
Removing devops_jenkins_1           ... done
Removing devops_gitlab-postgresql_1 ... done
Removing devops_gitlab-redis_1      ... done
Removing network devops_default
?  devops git:(master) ? 

原文地址:https://www.cnblogs.com/GH-123/p/11986465.html

时间: 2024-07-30 20:31:26

gitlab + jenkins 自动部署的相关文章

Gitlab CI 自动部署 asp.net core web api 到Docker容器

为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成.监控报警.以及扩容和高可用性的问题.是学习和探索的过程分享给大家,也欢迎同行的人交流. 先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例.这是第一步,通过此文您将了解如何将net core web api 运行在Docker

使用Jenkins 自动部署发布

使用Jenkins自动部署发布,继Jenkins部署篇后: #注意:jenkins路径会有差异,不用在意这个,同一个版本部署2次,发现了2个不同的目录结构,很诧异. jenkins build玩war包的存放目录:/data/jenkins/workspace/simple/target 自动发布的脚本存放路径:/data/jenkins/jobs/simple 脚本的内容: 脚本使用的是scp命令,当然也可以使用wget等. [[email protected] simple]# cat de

服务器做了格式化后(ip没变),jenkins自动部署报错

jenkins自动部署报错如下:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Some

Jenkins自动部署Shell脚本

注意:本脚本用于Shell脚本分享,因环境不同,不可直接用于其它环境部署用. #!/bin/bash#时间:2019年7月29日#作者:肖山#微信:helpxiaoshan#用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用. ############ 使用注意事项:################################################################################# 注意1:需修改目标主机/etc/ssh/sshd

gitlab+jenkins 自动化部署 持续集成

环境: 1.centos7.6 2.jdk1.8.0_141 3.4G 30G 4core 4.关闭防火墙和selinux 一.安装jenkins 1. 下载jenkins https://pkg.jenkins.io/redhat/  jenkins-2.208-1.1.noarch.rpm 2.安装jdk和jenkins rpm包 rpm -ivh jdk-8u141-linux-x64.rpm rpm -ivh jenkins-2.208-1.1.noarch.rpm 3.启动服务及设置开

gitlab+jenkins自动化部署

基于gitlab和jenkins的自动化部署 Gitlab基于Jenkins自动化部署教程: https://blog.csdn.net/aaaaaab_/article/details/82012044 https://www.cnblogs.com/dengbingbing/p/10448185.html GitLab是一个代码仓库,用来管理代码. Jenkins是一个自动化服务器,可以运行各种自动化构建.测试或部署任务.所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenki

jenkins自动部署tomcat

关于部署的3种思路: 远程部署(jenkins编译部署到远程服务器): 安装ssh插件 ssh插件配置 添加远程jenkins服务器节点: 本地部署(与jenkins在同一服务器): 关于maven构建的两种选择: 直接选择maven插件 自带插件(): 插件配置(或直接新建maven项目):   添加shell编译过程,通过shell调用服务器的maven环境 jenkins配置: export BUILD_ID=XXXXXX # 必须得加,原因未知,否则无法启动tomcat export p

使用Jenkins自动部署nodejs应用

想必部署过nodejs应用的朋友都有过这样的经历: 1.通过ssh登录服务器 2.进入nodejs目录 3.执行:git pull 命令拉取最新代码 4.执行:npm install 安装新依赖 5.执行:pm2 restart all 重新启动所有nodejs进程 如果我们只有一台机器,并且更新不是很频繁,似乎这样的操作还是可以接受,但是如果我们有4台nodejs应用的服务器,每次的代码改动将是灾难! 好在我们有Jenkins帮助我们做这些事情,Jenkins是一个可以自动远程部署,执行远程脚

局域网内利用gitlab,jenkins自动生成gitbook并发布(nginx)

安装了GitBook,内网使用,没法用上gitbook的网页. 用gitbook serve只能展示一本书,而且也不利于长期维护. 于是使用gitlab,jenkins,和nginx配合gitbook使用. 基本的流程是这样的,每本书作为项目托管到gitlab上,每次提交,gitlab会触发jenkins,jenkins会把仓库的内容拉下来,gitbook build 并复制到Web server(Nginx)的目录下,并加上可读权限,然后局域网内的人就都可以直接访问了. 下面记录过程 首先机器