当前位置: 首页 > 面试题库 >

使用Gitlab CI将每个版本部署到服务器

宗政永望
2023-03-14
问题内容

我已经设置了一个项目,并为其配置了一个Gitlab运行器,以设置自己的Gitlab服务器。我是持续​​集成服务器的新手,因此不知道如何完成以下任务。

每次我提交到项目的master分支时,我都希望将存储库部署到另一台服务器,并在其中运行两个shell命令(npm installforeverrestartall)。

我该怎么做?我也需要在部署项目的机器上安装运行程序吗?


问题答案:

您可以使用gitlab-ci和gitlab-runner [runners.ssh]部署到单个或多个服务器。

流程:

(git_project with yml file)  --> (gitlab && gitlab-ci) --> (gitlabrunner) ---runners.ssh---> (deployed_server,[deploye_server2])
  1. 您需要将gitlab-runner注册到gitlab-ci,并将标记设置为gitlab web上的delpoyServer。/etc/gitlab-runner/config.toml:
         [[runners]]
      url = "http://your.gitlab.server/ci"
      token = "1ba879596cf3ff778ee744e6decedd"
      name = "deployServer1"
      limit = 1
      executor = "ssh"
      builds_dir = "/data/git_build"
      [runners.ssh]
        user = "you_user_name"
        host = "${the_destionation_of_deployServer_IP1}"
        port = "22"
        identity_file = "/home/you_user_name/.ssh/id_rsa"


    [[runners]]
      url = "http://your.gitlab.server/ci"
      token = "1ba879596cf3ff778ee744e6decedd"
      name = "deployServer2"
      limit = 1
      executor = "ssh"
      builds_dir = "/data/git_build"
      [runners.ssh]
        user = "you_user_name"
        host = "${the_destionation_of_deployServer_IP2}"
        port = "22"
        identity_file = "/home/you_user_name/.ssh/id_rsa"

在runner.ssh手段,亚军将登录${the_destionation_of_deployServer_IP1}${the_destionation_of_deployServer_IP2},然后克隆项目builds_dir

  1. 编写yml文件,例如:.gitlab-ci.yml
        job_deploy:
      stage: deploy
      tags: delpoyServer1
      script:
        -  npm install &&  forever restartall
    job_deploy:
      stage: deploy
      tags: delpoyServer2
      script:
        -  npm install &&  forever restartall
  1. 将您的gitlab-runner设置为,delpoyServer1delpoyServer2在’ http://your.gitlab.server/ci/admin/runners ‘

    • 当您将代码推送到gitlab时
    • gitlab-ci服务器将解析.gitlab-ci.yml项目中的文件,选择带有标签的运行器:deployServer1deployServer2;
    • gitlab-runner与deployServer1标签将登录到${the_destionation_of_deployServer_IP1}${the_destionation_of_deployServer_IP2}使用ssh,克隆该项目builds_dir,然后执行你的脚本:NPM安装&&永远restartall。

链接:

  • gitlab-runner注册
  • 跑步者


 类似资料:
  • 安装依赖库 数据库配置 下载与安装 启动 Seafile 服务器 安装依赖库" class="reference-link">安装依赖库 Ubuntu 14.04,可用以下命令安装全部依赖。 sudo apt-get install openjdk-7-jre poppler-utils libpython2.7 python-pip mysql-server python-setuptools

  • 我有以下剧本:

  • 这是我的配置:在这里输入图像描述 并且有控制台输出: 构建成功总时间:7秒错误:步骤“Deploy War/EAR to a Container”由于异常而中止:java.io.ioException:预期Ant GLOB模式,但看到“/home/zhaowz/.jenkins/jobs/huamei-farm-web/workspace/BUILD/huamei.war”。有关hudson.fi

  • pom.xml我有这个用来部署 在设置中。tomcat服务器的xml我有这个 当我试图调用maven deploy时,出现了一个错误: 服务器正在运行。我试图在pom中更改tomcat插件。xml到tomcat7 maven插件,但我得到了相同的错误。据我所知,它正试图将war文件部署到http://localhost:8080/manager/ua/andrfas/SCPI/0.0.1/SCPI

  • 本文档用来说明通过预编译好的安装包来安装并运行基于 MySQL/MariaDB 的 Seafile 服务器。(MariaDB 是 MySQL 的分支) 下载 到下载页面下载最新的服务器安装包. 部署和目录设计 假设你公司的名称为 haiwen, 你也已经下载 seafile-server_1.4.0_* 到你的 home 目录下。 我们建议这样的目录结构: mkdir haiwen mv seaf