网易蜂巢上搭建CI服务

网易高级前端工程师:包勇明 授权发布

最近由于工作需要,在不同的服务器上安装了好几遍 Gitlab Runner,由于资料较为分散,时间久了,有些安装步骤必然会有所遗忘。本文演示如何在网易云上面安装 Gitlab Runner,如果你正好也需要搭建 CI 服务,可以参考下面的步骤。

在网易蜂巢上面创建容器服务

登录 网易蜂巢,左边侧栏,选择“容器服务”。可以创建空间,也可以直接使用 default 空间。选中空间后,点击“创建有状态负载”。

填写完后,点击“下一步”。

点击“选择镜像”。

在搜索框中,输入 ubuntu,选择“公共镜像”,选择自己喜欢的版本,我们就选择默认的“16.04-tools”。

填写容器名称。

选择 SSH 密钥。这是用户自己电脑上的公钥,等容器创建好后,可以在本地使用 SSH 的方式直接登录容器。如果是初次使用,就选择“创建SSH密钥”,然后选择“导入密钥”,可以上传本地的 SSH 公钥,或者是将公钥内容粘贴到文本框中。

蜂巢也可以直接使用 Web Console

由于 Gitlab Runner 的 CI 服务,会产生很多的构建和缓存文件,容器的系统盘只有 20G,一般来说对于有规模的团队是不够用的,这里我们再挂载一个数据盘,大家可以按照自己的实际需求选择是否要挂载额外的数据盘。

选择“创建云硬盘”,按要求填写名称,按实际需求选择硬盘的容量

点击“选择数据盘”下拉菜单,选择我们刚才创建的数据盘,然后填写挂载目录

注意,gitlab runner 的安装目录和挂载目录需要保持一致,这里我们使用 /home/gitlab-runner 目录

点击“下一步”,然后点击“立即创建”,此时就会开始创建我们设置的容器服务。

不用等多久,容器服务就会创建完成。

绑定公网IP

容器服务创建成功后,需要绑定公网IP,选择容器服务的“详细信息”标签,点击“绑定公网IP”

如果没有可用的公网IP,需要先申请公网IP。根据官方说明“弹性公网 IP 目前仅适用于可用区 B 中 VPC 网络环境中的实例,旧版 IP 管理中 IP 仅适用于可用区 A 中 classic 网络环境中的实例”,申请符合容器服务的公网IP。

因为前面我们在创建容器服务时,使用的是默认可用区,也就是“可用区A”,所以我们就只能申请“旧版 IP 管理”中的公网IP。申请完后,再到容器服务的详情页面中进行绑定即可。

登录服务器

选择“副本管理”标签,点击“Console”

安装 Gitlab Runner

按照官方文档,安装 Gitlab Runner

运行下面的命令:

wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

修改权限

chmod +x /usr/local/bin/gitlab-runner

创建 GitLab CI 用户

useradd --comment 'GitLab Runner' --create-home root --shell /bin/bash

安装并运行服务

gitlab-runner install --user=root --working-directory=/home/gitlab-runner
gitlab-runner start

注册 Runner

先打开 Gitlab 上的某个项目,选择设置中的 CI/CD 页面,里面有注册 Runner 时需要的 URL 地址和 Token 信息。

然后依次运行下面的命令

运行注册命令

gitlab-runner register

输入 CI/CD 页面显示的 URL 地址

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )https://xxx.xxx.xxx

输入 CI/CD 页面显示的 Token

Please enter the gitlab-ci token for this runner
xxx

输入 Runner 的描述

Please enter the gitlab-ci description for this runner[hostame] my-runner

输入 Runner 的 Tag

Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag

选择 Runner executor,我们选择 shell

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker

其他选项如果没有特殊要求,就一路回车即可。

启动 Gitlab Runner

此时,在 Gitlab 上的项目的 CI/CD 设置页面,会出现我们注册的 Runner,并且默认已经是启动的。

如果没有启动,请点击“Enable for this project”。

之后,在项目的根目录中,添加 CI 的配置文件 .gitlab-ci.yml,它是一个使用 yaml 格式的文件,所以缩进非常重要,语法详见:.gitlab-ci.yml。 之后,再提交代码时,就会自动跑指定的任务了。

安装其他软件

对于前端工程师来说,运行任务时,基本上都需要 Node.js 和其他的软件。常见的需要安装的软件有:

首先更新安装工具命令:

apt-get update

安装 Git:

apt-get install git-core

安装 npm:

apt-get install npm

如果要更新到最新的版本,可以再使用 npm install npm@latest -g 命令,运行完后记得重新登录容器服务

使用 npm 安装 n:

npm install n -g

使用 n 安装 Node:

n 8.11.2

安装 cnpm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

有些项目可能需要用到 puppeteer,需要安装一些额外的库文件:

apt-get update && \apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

原文发布于微信公众号 - 前端黑板报(FeHeiBanBao)

原文发表时间:2018-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏pangguoming

MongoDB 备份(mongodump)与恢复(mongorestore)

MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。 mongodump命令可...

5305
来自专栏乐享123

Docker Cheat Sheet

1765
来自专栏用户画像

windows 安装mongo数据库&注册mongo服务

https://www.mongodb.com/download-center?jmp=nav#community

981
来自专栏一个会写诗的程序员的博客

adb命令 - adb forward交互流程adb命令 - adb forward交互流程

命令: adb forward tcp:6100 tcp:7100 // PC上所有6100端口通信数据将被重定向到手机端7100端口server上

2133
来自专栏LanceToBigData

linux(十三)之磁盘分区、创建文件系统、挂载

前面学习了linux的用户管理 ,感觉是不是linux的多用户多任务的系统感觉十分了解了,但是其实并不然的。你还需要了解更多。接下来给大家分享的是 在vmwar...

38110
来自专栏魏艾斯博客www.vpsss.net

BackUpWordPress 插件定时备份网站和数据库

2174
来自专栏张善友的专栏

超实用的8个Linux命令行性能监测工具

对每个系统/网络管理员来说,每天监测Linux系统性能是一项非常艰巨的任务。在IT业从事5年的Linux系统管理员后,我发现监控和保持系统正常运行真不是件容易的...

2245
来自专栏Java帮帮-微信公众号-技术文章全总结

redis 的安装和部署

安装 1.首先下载Redis压缩包 wget : http://download.redis.io/releases/redis-3.2.6.tar.gz 2...

4106
来自专栏GreenLeaves

Nginx学习系列之搭建环境

进入root模式,安装两个组件.指令-y表示安装过程需要选择是否同意的全部选同意  autoconf表示自动配置 automake表示自动make

942
来自专栏云端漫步

harbor源码分析之容器编排脚本解析(四)

前边三篇文章对harbor项目的安装脚本进行展开说明.整个harbor项目将各个组件容器化,通过docker-compose编排工具进行容器编排.在本篇中将对d...

720

扫码关注云+社区

领取腾讯云代金券