GitLab-CI Runner 安装配置

作者 huhamhire,暂无评论,2014年2月19日 14:26 折腾历程

在上一篇文章中已经完成了 GitLab-CI Server的安装部署过程。不过要进一步执行自动构建以及自动测试任务的话,需要进一步安装配置 GitLab-CI Runner 来用于自动化任务的执行。本文就来介绍一下 GitLab-CI Runner 的安装流程。

由于 GitLab-CI Runner 并不涉及使用数据库的部分,而是注册在 GitLab-CI 服务器上进行管理的,所以安装配置过程相对来说简单不少,并且 GitLab-CI Runner 对操作系统的要求也不如之前的 GitLab 服务器这样严格。本文中的安装过程依旧使用了 Debian Wheezy 7.4 的虚拟机实现。

另外说明一点,理论上 GitLab-CI Runner 可以与 GitLab-CI Server 以及 GitLab Server 安装在同一台服务器上,不过出于安全性的考虑,官方文档建议还是单独配置 GitLab-CI Runner 为好。

在之前使用虚拟机部署 GitLab-CI Server,并按照前一篇文章中的流程在做完准备工作后有快照的情况下,可以直接使用该快照来开始 GitLab-CI Server 的配置,请直接跳至本文第三部分。
另外,GitLab 官方提供了详尽的安装配置流程,可以访问 https://gitlab.com/gitlab-org/gitlab-ci-runner/blob/master/README.md 获取相关内容。

1. 安装依赖软件包

开始前先检查一下软件包更新:


sudo apt-get update
sudo apt-get upgrade

安装需要使用的软件包:


sudo apt-get install -y wget curl gcc checkinstall libxml2-dev \
libxslt-dev libcurl4-openssl-dev libreadline6-dev libc6-dev \
libssl-dev libmysql++-dev make build-essential zlib1g-dev \
openssh-server git-core libyaml-dev libpq-dev libicu-dev \
redis-server

GitLab-CI 并没有特别说明依赖 git 的特定版本,全新安装的话,直接使用系统软件源提供的 git-core 包即可。

2. 安装 Ruby

与安装 GitLab Server 一样,安装 GitLab-CI Server 同样需要自行编译 Ruby。过程同前一篇文章中的一致。


mkdir /tmp/ruby && cd /tmp/ruby
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz
cd ruby-2.0.0-p353
./configure --disable-install-rdoc
make
sudo make install

编译安装完成后,国内环境依旧建议将默认的 gem source 改为淘宝镜像:


gem source -r https://rubygems.org/
gem source -a http://ruby.taobao.org/

安装 Bundler:


sudo gem install bundler --no-ri --no-rdoc

3. 安装配置 GitLab-CI Runner

3.1 安装前的准备

首先安装 ruby bundler:


sudo gem install bundler

建立用于安装 GitLab-CI Runner 的系统用户:


sudo adduser --disabled-login --gecos 'GitLab CI Runner' gitlab_ci_runner

3.2 安装 GitLab-CI Runner

通过 git 获取 GitLab-CI Runner 源代码:


sudo su gitlab_ci_runner
cd ~/
git clone https://gitlab.com/gitlab-org/gitlab-ci-runner.git
cd gitlab-ci-runner

编辑 Gem 文件:


editor Gemfile

修改 Gem 源的镜像服务器为淘宝镜像:


source "http://ruby.taobao.org/"

配置完成后安装 Gitlab-CI Runner 的 Gem 包,注意安装时候的权限问题。


exit
cd /home/gitlab_ci_runner/gitlab-ci-runner
bundle install

3.3 修改 hosts 文件

在 hosts 文件中加入 GitLab 服务器以及 GitLab-CI 服务器域名对应的 IP。


sudo editor /etc/hosts

3.4 在服务器上注册 GitLab-CI Runner

首先用自己的账户登录 GitLab-CI 服务器,在 Runner 管理页面获取用于注册 GitLab-CI Runner 的注册令牌(REGISTRATION_TOKEN)。

ci-runner_01

以命令模式在 GitLab-CI Server 上注册本机的 GitLab-CI Runner。注意在命令中替换自己服务器上给出的注册令牌,并设置正确的 GitLab-CI 服务器域名。


sudo su gitlab_ci_runner
cd ~/gitlab-ci-runner
CI_SERVER_URL=https://gitlab-ci.huhamhire.com REGISTRATION_TOKEN=replaceme bundle exec ./bin/setup

尝试用 SSH 方式访问 GitLab 服务器,并将服务器的 ssh key 添加到已知主机列表:


ssh git@gitlab.huhamhire.com

退出当前用户:


exit

3.5 设置 GitLab-CI Runner 自动启动

复制 GitLab-CI Runner 的自动启动脚本到系统目录:


cd /home/gitlab_ci_runner/gitlab-ci-runner
sudo cp ./lib/support/init.d/gitlab_ci_runner /etc/init.d/gitlab-ci-runner

为 GitLab-CI Runner 启动脚本赋予权限:


sudo chmod +x /etc/init.d/gitlab-ci-runner

设置 GitLab-CI Runner 自动启动:


sudo update-rc.d gitlab-ci-runner defaults 21

4. 启动 GitLab-CI Runner

使用命令启动 GitLab-CI Runner 服务:


sudo service gitlab-ci-runner start
GitLab-CI Runner 关联了项目并启动后,每次使用 Git 向 GitLab 服务器提交版本后,都会自动在 GitLab-CI 上启动预定的构建或测试任务。
ci-runner_02
关键词:git , GitLab , GitLab-CI
登录后进行评论