我问这个是因为我找不到类似于我的案例的运行示例 . 我在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验证)是我能做到的吗?
在此先感谢您的帮助 .