前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3天学会Jenkins_13_自动部署项目到远程服务器

3天学会Jenkins_13_自动部署项目到远程服务器

作者头像
别打名名
发布2019-12-23 13:06:19
1.5K0
发布2019-12-23 13:06:19
举报
文章被收录于专栏:小白AI.易名

转载注明出处,欢迎关注微信小程序

1 准备

  • Gitlab相关插件安装,参考前面文章《Jenkins Github&Gitlab集成之安装Git插件》及 《gitlab or github代码提交后自动构建2》
  • 安装Publish over ssh插件
  • Manage Jenkins->Configure System->Publish over SSH配置SSH。
    • 可以只需配置密码或者是公钥,两者均可
    • 服务器配置需要指定主机地址和主机登录用户名,远程拷贝目录
    • 点击Test Configuration可以测试是否可以连接远端服务器成功

2 目标和原理

2.1 目标

当Gitlab提交了Tag时,触发自动编译、打包和自动远程部署

2.2 原理

通过在指定Gitlab项目上添加Jenkins的webhook,然后配置提交Tag时触发钩子。从而,Jenkins执行Jenkinsfile实现自动编译、打包和自动远程部署。

3 Jenkins项目创建及webhook配置

  1. 创建一个Pipeline项目
  2. 配置项目
    • Build Triggers -> 勾选Build when a change is pushed to GitLab. GitLab webhook URL:......
    • 这里可以点击Advanced,点击Generate会生成Secret token,用于Gitlab hook配置用,当然可以不用这一步,那Gitlab上也不用配置了。
  3. Pipeline设置
    • 选择Pipeline script from SCM
    • SCM方式选择Git,然后正确填写远程仓库地址和拉取代码方式
    • Branch Specifier : ${gitlabSourceBranch} (所有分支)
    • Script Path可以设置指定的Jenkinfile文件名,默认为项目根目录Jenkinsfile
  4. Gitlab项目Settings -> Integrations配置Jenkins webhook
    • 将第二步中的webhook链接拷贝到URL文本框中
    • 添加成功后,点击Test,即可触发Tag Push Event。

注意:如果Jnekins主机IP发生改变,没有重启的话,那么钩子的IP地址还是旧地址,导致Gitlab无法发出钩子事件(Hook execution failed: execution expired) 添加webhook的话是需要有Gitlab项目master权限的,否则你也看不到Settings这个菜单选项。

4 项目编译打包及远程发布

上面的一系列操作,我们已经将Jenkins和Gitlab通过webhook连接起来了,接下来只需要实现Jenkinfile文件的执行内容,即实现编译、打包及远程发布功能。其实就是写脚本。

部署形式可分为两种:

  • 本地部署
    • 直接编写本地部署脚本就好了。
  • 远程部署
    • 通过ssh或者ftp方式将编译打包的的软件包通过远程拷贝到目标服务器上,然后执行安装,典型的自动化执行实现方式就是借助expect命令,包括输入用户密码和通过跳转机登录到远端服务器上之类的操作。

5 参考文档

  • https://github.com/jenkinsci/gitlab-plugin#defined-variables
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 别打名名 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2 目标和原理
    • 2.1 目标
      • 2.2 原理
      • 3 Jenkins项目创建及webhook配置
      • 4 项目编译打包及远程发布
      • 5 参考文档
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档