当前位置: 首页 > news >正文

有关网站建设的外文文献/精准营销推广方案

有关网站建设的外文文献,精准营销推广方案,o2o平台有哪些网站,网站怎样排名靠前简介gitlab-ci全称是gitlab continuous integration的意思,也就是持续集成。中心思想是当每一次push到gitlab的时候,都会触发一次脚本执行,然后脚本的内容包括了测试,编译,部署等一系列自定义的内容。本文就是利用gitl…

简介

gitlab-ci全称是gitlab continuous integration的意思,也就是持续集成。中心思想是当每一次push到gitlab的时候,都会触发一次脚本执行,然后脚本的内容包括了测试,编译,部署等一系列自定义的内容。本文就是利用gitlab-ci的持续集成来实现自动部署。相比之前webhook的自动部署还是强大以及方便了许多。

原理

自动部署涉及了若干个角色,主要介绍如下

  • GitLab-CI 这个是一套配合GitLab使用的持续集成系统,是GitLab自带的,也就是你装GitLab的那台服务器上就带有的。无需多考虑。.gitlab-ci.yml的脚本解析就由它来负责。

  • GitLab-Runner 这个是脚本执行的承载者,.gitlab-ci.yml的script部分的运行就是由runner来负责的。GitLab-CI浏览过项目里的.gitlab-ci.yml文件之后,根据里面的规则,分配到各个Runner来运行相应的脚本script。这些脚本有的是测试项目用的,有的是部署用的。

       referrerpolicy=
    GitLab-CI与GitLab-Runner关系示意图
  • .gitlab-ci.yml 这个是在git项目的根目录下的一个文件,记录了一系列的阶段和执行规则。GitLab-CI在push后会解析它,根据里面的内容调用runner来运行。

步骤

  • 安装GitLab-CI 这个不用安装了,装好GitLab就自带了
  • 安装GitLab-Runner 在centOS上安装gitlab-ci-multi-runner

    $ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
    $ yum install gitlab-ci-multi-runner

    这样就装好了gitlab-ci-multi-runner,然而我们只是装好了gitlab-runner,当然我们要接着向gitlab-CI注册这个runner,不然gitlab-CI在push事件到来的时候怎么知道要调用谁呢?这里也可以发现和webhook方式的区别,webhook方式是我们主动配置了一个连接给gitlab;gitlab-runner只要注册一下就好了。

    那么我们就注册一下

    $ gitlab-ci-multi-runner register
    #引导会让你输入gitlab的url,输入自己的url,例如http://gitlab.example.com/
    #引导会让你输入token,去相应的项目下找到token,例如ase12c235qazd32
    #引导会让你输入tag,一个项目可能有多个runner,是根据tag来区别runner的,输入若干个就好了,比如web,hook,deploy
    #引导会让你输入executor,这个是要用什么方式来执行脚本,图方便输入shell就好了。

    然后就注册好了,在gitlab中相应的位置就可以看到你注册好的runner信息。

  • 编写.gitlab-ci.yml
    在项目根目录下编写.gitlab-ci.yml这样在push之后,gitlab-ci就会自动识别来解析了。

    stages:
    - deploy
    deploy:stage: deployscript:- deploy Example_Group Example_Projectonly:- mastertags:- shell

    这里我们只有一个stage是deploy。only指定了只有在master分支push的时候才会被执行。tags是shell,对应了刚才注册runner的时候的tags。

    最重要的script部分deploy Example_Group Example_Project,这里是一条shell指令,为了方便通用性,deploy是我在服务器上编写的一个脚本,传入参数是Example_Group Example_Project分别是项目组名和项目名。执行这一条指令就能够自动部署到/xxx/Example_Group/Example_Project的服务器目录下。那么随便什么项目都用这个格式去套就好了,这样新项目的自动部署也不需要登录到服务器上去修改了。

  • 编写deploy脚本
    在gitlab-runner的~/.local/bin/目录下新建deploy文件

    $ su gitlab-runner
    $ mkdir ~/.local/bin
    $ cd ~/.local/bin
    $ touch deploy

    并编辑成如下内容

    #!/bin/bash
    if [ $# -ne 2 ]
    thenecho "arguments error!"exit 1
    elsedeploy_path="/var/www/$1/$2"if [ ! -d "$deploy_path" ]thenproject_path="git@gitlab.example.com:"$1/$2".git"git clone $project_path $deploy_pathelsecd $deploy_pathgit pullfi
    fi

    这个脚本的大意就是,如果目录不存在,那么就git clone一个,如果存在了就git pull一个到指定目录下。这样就达到了自动部署的目的。记得修改里面的gitlab.example.com的地址哦。

    加上执行权限,然后把这个脚本放在gitlab-runner的~/.local/bin下就可以生效了(为了不用写难看的./deploy)

    $ chmod +x ~/.local/bin/deploy

    并且把~/.local/bin加到$PATH路径中(用户执行命令时候能够查找到这个目录),只要在~/.profile末尾加入这一句话

    PATH="$HOME/.local/bin:$PATH"
  • 配置ssh登录
    上面的deploy脚本是用ssh方式来和gitlab联系的。所以要给gitlab-runner这个用户配置一个gitlab上能ssh的用户。首先在gitlab-runner下生成一个密钥对

    $ mkdir ~/.ssh
    $ cd ~/.ssh
    $ ssh-keygen
    # 提示输入一直按回车默认就可以了
    $ cat id_rsa.pub

    用cat查看公钥,然后复制这一串公钥。在gitlab中新建一个账号比如叫gitlab-runner,把这个账号添加到你的项目成员中,然后在这个账号的user_profile里面,把公钥粘贴进去就好了。总之就是把这个账号配置成能用ssh登录的。

  • 移交部署目录权限
    有些同学可能说脚本执行失败了,有一个原因是/var/example的所有者是root,gitlab-runner并没有权限新建文件。所以我们把/var/example目录的所有者交给gitlab-runner

    $ chown -hR gitlab-runner:gitlab-runner /var/www

    如果还是不成功,可以在服务器上手工deploy XX XX一次,第一次访问这个服务器的时候,有个命令行提示是要把sign添加进已知服务器列表,需要手工输入个yes。如果在服务器上能够正常deploy,那么
    这样就大功告成了。

尝试一下git push到相应项目,然后到服务器上的目录看一下是不是有了呢。

参考文档

GitLab-CI与GitLab-Runner
GitLab官方材料



作者:st0rm23
链接:http://www.jianshu.com/p/df433633816b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
http://www.lbrq.cn/news/1416871.html

相关文章:

  • 做网站费用多少/随州seo
  • 做违法网站的后果/seo系统
  • qifeiye做的网站如何/seo网站外链工具
  • 广东商城网站建设价格低/专业做网站建设的公司
  • 企业信息网站模板/买卖网交易平台
  • 番禺做网站费用/google开户
  • 100件创意产品/搜索引擎优化的方式有哪些
  • 做电影解析网站/pc端网页设计公司
  • 有个网站叫设计什么/别人恶意点击我们竞价网站
  • vs2013做的网站/凡科建站官网登录
  • 网站添加 百度商桥/网络优化工程师是做什么的
  • 网站建设 广州佛山/竞价排名营销
  • 个人建设网站流程/2023网站分享
  • 11年始终专注营销型网站/制作公司网站的步骤
  • 泰州网站制作价格/电商的推广方式有哪些
  • 网站建设网站维护的具体内容是什么/商家联盟营销方案
  • 合肥行业网站建设/小程序开发平台有哪些
  • 无锡网站建设技术/电商seo优化
  • 品牌网站如何做seo/百度账号官网
  • asp转换手机网站/黑龙江最新疫情通报
  • 凡科可以做淘宝客网站吗/电商培训
  • wordpress中文站点/济南网站建设公司选济南网络
  • 山西网站制作方案/哈尔滨seo
  • 公司网站怎么做推广/成品网站1688入口网页版
  • 我想花钱做网站/营销软文写作
  • 深圳专业做网站/学网络营销好就业吗
  • 东莞微网站建设公司哪家好/网络营销运营方案
  • 做网站服务器应该怎么配置/百度2022年版本下载
  • 如何做团购网站中的美食地处地图功能/阿里指数官网入口
  • 兰州北山生态建设局网站/网站建设费用
  • 计算机网络 TCP time_wait 状态 详解
  • 官方正版在线安装office 365安装工具
  • 海洋牧场助力可持续发展,保护海洋生态平衡
  • 数据结构03(Java)--(递归行为和递归行为时间复杂度估算,master公式)
  • Houdini 粒子学习笔记
  • Netty 的 Select/Poll 机制核心实现主要在 NioEventLoop 的事件循环