安装 gitlab CI 服务.md

安装 gitlab-ce

安装依赖包
yum install curl policycoreutils openssh-server openssh-clients
systemctl enable sshd
systemctl start sshd
yum install postfix
systemctl enable postfix
systemctl start postfix
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
下载 gitlab-ce 镜像
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
yum makecache
yum install gitlab-ce

配置

vi /etc/gitlab/gitlab.rb

external_url 'http://ip'
启动gitlab
gitlab-ctl reconfigure
遇到报错
Error executing action `run` on resource 'execute[semodule -i /opt/gitlab/embedded/selinux/rhel/7/gitlab-7.2.0-ssh-keygen.pp]
  1. stop gitlab
  2. yum install libsemanage-static libsemanage-devel

安装CI服务

下载安装CI
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-10.5.0-1.x86_64.rpm
rpm -ivh gitlab-runner-10.5.0-1.x86_64.rpm
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
gitlab-runner uninstall
gitlab-runner install --working-directory /home/gitlab-runner/ --user gitlab-runner
gitlab-runner restart
gitlab-runner status
注册 runner
sudo gitlab-ci-multi-runner register
-- 输入Gitlab CI地址, (e.g. https://gitlab.xunlei.cn/ci)
http://192.168.1.249/gitlab/
-- 输入项目CI token
fuXXXXXXXXXX
-- 输入 Runner 描述(e.g. home.xl9.xunlei.com 测试runner)
测试Runner
-- 输入 Runner 标签,可以多个,用逗号隔开(e.g. 10.10.34.91-dev)
251-dev
-- 输入 Runner 执行的语言 (e.g. shell)
shell
-- 认证是否注册成功
sudo gitlab-ci-multi-runner verify

图片描述

编写脚本

在项目下面创建.gitlab-ci.yml

stages:
  - deploy

deploy_dev:
  stage: deploy
  tags:
    - 251-dev
  only:
    - develop
  script:
    - deploy_stage.sh

然后在部署服务器上的 gitlab-runner 用户路径下创建deploy_stage.sh

echo "delete old xyj-admin-api"
sudo rm -rf /raid1/www/test
sudo git clone git@192.168.1.249:test/xyj-test-api.git /raid1/www/test
sudo git fetch --all
sudo git reset --hard origin/test
echo "=============重启服务===================="
source /etc/profile
sudo supervisorctl restart test
time=`date`
echo "部署结束: $time."
echo "================================================"

其中 测试项目是被 supervisorctl 管理的

要确保几件事

  1. 改服务器能够正常从远端克隆数据
  2. 命令几点要带上sudo
  3. 用户sudo无密码及在tty下可以使用需要参考 Linux sudo 相关操作
  4. 如果克隆下来的文件放在挂载盘,需要在 ~/ 路径下执行 clone 然后放到对应路径,否则报错 fatal: could not create work tree dir

遇到无法克隆,且 gitlab 日志为

gitlab JWT::DecodeError (Nil JSON web token) 

修改 nginx 配置

upstream gitlab-workhorse {
      server unix:/var/opt/gitlab/gitlab-workhorse/socket;
 }

...
proxy_pass http://gitlab-workhorse;
...

git push develop 后触发脚本
图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值