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

我的Gitlabs安装显示(机器1):

gitlab-ce 10.4.4 gitlab-config-template 10.4.4
gitlab-cookbooks 10.4.4
gitlab-ctl 10.4.4
gitlab, Health 检查
gitlab显示器
gitlab的页面
gitlab-PSQL
gitlab护栏
gitlab的脚本
gitlab SELinux的
gitlab壳
gitlab-主力

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

1.我在gitlabs doc之后创建了一个跑步者,除了(机器2)之外没有多少显示在这里:

url: https://url.to.my.compute.amazonaws.com
 Token : token given by gitlab
 Executor: shell
 Tags:  build  deploy  qa  stage

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

我设置了两个秘密变量

SSH_PRIVATE_KEY和DEPLOY_SERVERS(分别带有密钥和ips)

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

#!/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

我的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正在获得一个“STUCK”标签,这份工作告诉我“工作被困,检查跑步者”

问题:

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

  • 您是否在所有这些配置中看到了我想念的任何内容(或过程)?

  • 在我的gitlab遥控器中我有“主”权限,这是我需要运行跑步者吗?

  • 我怎么能在这一点上调试(我正在使用gitlab-runner --debug验证)是我能做到的吗?

在此先感谢您的帮助 .