自托管gitlab自动部署到aws ec2服务器

自托管gitlab自动部署到aws ec2服务器,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我这样问是因为我找不到一个与我的案例类似的运行示例。我在AWS EC2机器中有一个自托管Gitlab(我们称之为“机器1”,我想将自动部署设置到AWS EC2远程服务器,称为“机器2”) My Gitlabs安装显示(机器1): gitlab ce 10.4.4 gitlab配置模板10.4.4 gitlab cookbooks 10.4.4 gitlab ctl 10.4.4 gitlab healthcheck gitlab监视器 gitlab页面 gitlab psql gitlab ra

我这样问是因为我找不到一个与我的案例类似的运行示例。我在AWS EC2机器中有一个自托管Gitlab(我们称之为“机器1”,我想将自动部署设置到AWS EC2远程服务器,称为“机器2”)

My Gitlabs安装显示(机器1):

gitlab ce 10.4.4 gitlab配置模板10.4.4
gitlab cookbooks 10.4.4
gitlab ctl 10.4.4
gitlab healthcheck
gitlab监视器
gitlab页面
gitlab psql
gitlab rails
gitlab脚本
gitlab selinux
gitlab外壳
gitlab主力军

我已按照gitlab说明在我的项目中设置gitlab文档上的CI&CD。我想设置自动部署。以下步骤如下:

1.我已经创建了以下gitlabs文档的runner,除了(机器2)之外,这里没有太多要显示的内容:

2.我已经创建了我的.gitlab-ci.yml(在根项目中)文件(即使创建了两个yml文件版本,我也尝试过):

yml 2:

  stages:
   - build
   - deploy

  build:
   stage: build
   script: echo "Building the app"

  deploy_staging:
    stage: deploy
    script:
    - echo "Deploy to staging server"
yml 1:

 #develop stage
deploy:   
   stage: deploy   
   before_script: 
   #generate ssh key   
     - mkdir -p ~/.ssh     
     - echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa     
     - chmod 600 ~/.ssh/id_rsa        
   script:     
     - bash .gitlab-deploy.sh   
   environment:     
     name: develop     
     url: https://my.domain.com
   when: manual
3.我设置了两个秘密变量

SSH_私钥和DEPLOY_服务器(分别带有密钥和IP)

4.我添加了一个deploy.sh文件(在我的项目根目录中)

我的gitlab runner在今天向我展示: gitlab runner验证 警告:在用户模式下运行。
警告:用户模式要求您手动启动生成处理: 警告:$gitlab runner run
警告:将sudo用于系统模式:
警告:$sudo gitlab runner

正如sudo所说的那样跑步向我的跑步者展示:

 Verifying runner... is alive                        runner=
 Verifying runner... is alive                        runner=
 Verifying runner... is alive                        runner=
但是仍然在gitlabs的ui中有一个“卡住”标签,作业告诉我“作业卡住了,检查跑步者”

问题:

  • 这就是要遵循的所有步骤吗

  • 在所有这些配置中,您是否看到我遗漏的任何内容(或流程)

  • 在我的gitlab remote中,我拥有“主”权限,这就是我运行runner所需要的吗

  • 此时我如何调试(我使用的是gitlab runner--debug verify),这就是我所能做的吗

  • 提前感谢您的帮助。

    当跑步者是“特定的”时,阶段需要一个“标签”,如:

    #!/bin/bash
    #Get servers list
    set -f
    string=$DEPLOY_SERVERS
    array=(${string//,/ })
    #Iterate servers for deploy and pull last commit
    for i in "${!array[@]}"do    
      echo "Deploy project on server ${array[i]}"    
      ssh ubuntu@${array[i]} "cd /var/www/html/app && git pull origin develop"
    done
    
     Verifying runner... is alive                        runner=
     Verifying runner... is alive                        runner=
     Verifying runner... is alive                        runner=
    
    stages:
    - build
    - deploy
    
     build:
      stage: build
      script: echo "Building the app"
    
     deploy_staging:
       stage: deploy
       script:
       - echo "Deploy to staging server"
       tags:
         - deploy