前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网易蜂巢上搭建CI服务

网易蜂巢上搭建CI服务

作者头像
前端黑板报
发布2018-07-24 16:22:33
8880
发布2018-07-24 16:22:33
举报
文章被收录于专栏:前端黑板报前端黑板报

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

最近由于工作需要,在不同的服务器上安装了好几遍 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

运行下面的命令:

代码语言:javascript
复制
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

修改权限

代码语言:javascript
复制
chmod +x /usr/local/bin/gitlab-runner

创建 GitLab CI 用户

代码语言:javascript
复制
useradd --comment 'GitLab Runner' --create-home root --shell /bin/bash

安装并运行服务

代码语言:javascript
复制
gitlab-runner install --user=root --working-directory=/home/gitlab-runner
gitlab-runner start

注册 Runner

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

然后依次运行下面的命令

运行注册命令

代码语言:javascript
复制
gitlab-runner register

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

代码语言:javascript
复制
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )https://xxx.xxx.xxx

输入 CI/CD 页面显示的 Token

代码语言:javascript
复制
Please enter the gitlab-ci token for this runner
xxx

输入 Runner 的描述

代码语言:javascript
复制
Please enter the gitlab-ci description for this runner[hostame] my-runner

输入 Runner 的 Tag

代码语言:javascript
复制
Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag

选择 Runner executor,我们选择 shell

代码语言:javascript
复制
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 和其他的软件。常见的需要安装的软件有:

首先更新安装工具命令:

代码语言:javascript
复制
apt-get update

安装 Git:

代码语言:javascript
复制
apt-get install git-core

安装 npm:

代码语言:javascript
复制
apt-get install npm

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

使用 npm 安装 n:

代码语言:javascript
复制
npm install n -g

使用 n 安装 Node:

代码语言:javascript
复制
n 8.11.2

安装 cnpm:

代码语言:javascript
复制
npm install -g cnpm --registry=https://registry.npm.taobao.org

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

代码语言:javascript
复制
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
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端黑板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在网易蜂巢上面创建容器服务
  • 绑定公网IP
  • 登录服务器
  • 安装 Gitlab Runner
  • 注册 Runner
  • 启动 Gitlab Runner
  • 安装其他软件
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档