【问题标题】:Self-hosting gitlab autodeploy to aws ec2 server自托管 gitlab 自动部署到 aws ec2 服务器
【发布时间】:2019-04-16 06:04:32
【问题描述】:

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

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

gitlab-ce 10.4.4 gitlab-config-template 10.4.4
gitlab 食谱 10.4.4
gitlab-ctl 10.4.4
gitlab 健康检查
gitlab 监视器
gitlab 页面
gitlab-psql
gitlab-rails
gitlab 脚本
gitlab-selinux
gitlab-shell
gitlab-workhorse

我已按照 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

3.我设置了两个秘密变量

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 运行
警告:将 sudo 用于系统模式:
警告:$ sudo gitlab-runner...

并以 sudo 的方式运行,因为它显示了我的跑步者:

 Verifying runner... is alive                        runner=
 Verifying runner... is alive                        runner=
 Verifying runner... is alive                        runner=

但仍然在 gitlabs 中,用户界面得到一个“STUCK”标签,工作告诉我“工作被卡住,检查跑步者”

问题:

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

  2. 您是否看到我在所有这些配置中遗漏的任何内容(或过程)?

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

  4. 此时我该如何调试(我正在使用 gitlab-runner --debug verify)是我能做的吗?

提前感谢您的帮助。

【问题讨论】:

    标签: gitlab gitlab-ci gitlab-ci-runner


    【解决方案1】:

    当 runner 是“特定的”时,阶段需要一个“标签”,例如:

    stages:
    - build
    - deploy
    
     build:
      stage: build
      script: echo "Building the app"
    
     deploy_staging:
       stage: deploy
       script:
       - echo "Deploy to staging server"
       tags:
         - deploy
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-04
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      相关资源
      最近更新 更多