Android 持续集成实践(一)——从0开始搭建 Gitlab 服务器
Android 持续集成实践(一)——从0开始搭建 Gitlab 服务器
前言
最近幸得空闲,就来自己实践一遍 Android 的持续集成,之前公司一直在使用同事搭建的 gitlab+ci+firim
,确实是方便了很多,所以就有了自己实现一遍的想法。
在实践的过程中,也是磕磕绊绊各种填坑。网上有很多实现持续集成的教程,但是自己实践的时候各种坑总是出其不意的出现,所以我想记录一下我的实践过程,尽可能的做到详细,希望实践过程中遇到的问题,在这里都能找到解决方案。
系列文章
Android 持续集成实践(一)——从0开始搭建 Gitlab 服务器
Android 持续集成实践(二)——配置 Docker + gitlab-runner 实现线上自动编译
Android 持续集成实践(三)——编写 .gitlab-ci.yml 实现自动化
Android 持续集成实践(四)——加入 WebHook 通知编译结果
Android 持续集成实践(一)——从0开始搭建 Gitlab 服务器
搭建 Gitlab 的环境
之所以用 CentOS7,是因为公司的搭建 gitlab 的服务器用的是这个版本,这是我第一次用 CentOS,作为一个移动端程序猿,我决定现在虚拟机上搞一搞~
安装 CentOS7
vbox 的安装一路 next 就行了。
CentOS7 的安装也没啥难度,这里放个参考链接
需要注意的是,在安装 CentOS7 的时候,内存和硬盘的大小分配的多一点,不然之后安装完 Gitlab 后,线上编译的时候容易 oom 导致编译失败。
这里推荐内存4G,硬盘20G
配置网络
这里网络要配置成跟主机在同一个网段,并且可连接外网
首先在 vbox 里边把网卡连接改为桥接模式
安装完成进入系统后先看一下网络信息:
ip addr
enp0s3
是我的网卡名字,这个不是固定的,你的可能跟我的名字不一样192.168.4.80
是我 CentOS7 的 ip 地址。
如果你的 ip 信息里网卡没有 inet ip 信息,或者你的 ip 跟主机不在一个网段下,那么就需要配置一下 ip:
# 进入网络配置所在的文件夹
cd /etc/sysconfig/network-scripts
# 编辑网络配置文件(这里文件名字可能不一样,根据你的网卡的名字进入对应的文件进行编辑)
vi ifcfg-enp0s3
# ONBOOT="yes"
# BOOTPROTO="static"
# IPADDR="x.x.x.x" 这里配置跟主机一个网段的
# NETMASK="x.x.x.x" 子网掩码,跟主机保持一致
# GATEWAY="x.x.x.x" 网关,跟主机保持一致
# DNS1="8.8.8.8"
# DNS2="4.4.4.4"
# 进入编辑模式后,按 i 键进入 Insert 模式,此时可以修改文件,修改完成后按 esc 退出编辑模式,然后按 :wq 保存和退出文件
# 重启网络服务使配置生效
service network restart
配置完之后,用 ping 命令测试一下网络:
此时网络配置就没问题了。
安装 Gitlab 服务器
安装依赖
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
安装 Gitlab 服务
这里下载 rpm 包并安装,所以要先安装 wget
sudo yum install wget
# 在 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 中找一个最新版安装
# 这里我安装的是 gitlab-ce-11.9.9-ce.0.el7.x86_64
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.9-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-11.9.9-ce.0.el7.x86_64.rpm
出现下图表示 gitlab 已经安装上了:
配置 gitlab url 和端口
安装成功之后,还需要配置一下 url 和端口才能正常访问,这里我给 gitlab 指定 8888 端口,不要忘了在防火墙里打开指定的端口
-
配置 url
因为是虚拟机,这里直接用虚拟机的 ip 地址
# 编辑文件 i 进入写模式,编辑完后 esc -> :wq 保存并退出 vi /etc/gitlab/gitlab.rb
找到
external_url
这个属性,把地址改为虚拟机 ip 并指定端口号:# 使修改的配置生效 gitlab-ctl reconfigure
-
开放指定端口号
虽然 gitlab 指定了使用 8888 端口,但是这时候防火墙并没有开放这个端口,所以需要在防火墙配置一下。
首先查看一下防火墙开了哪些端口:# 查看开放的端口列表 firewall-cmd --list-ports # 开放 8888 端口 firewall-cmd --zone=public --add-port=8888/tcp --permanent # 重启防火墙 firewall-cmd --reload # 再次查看是否开放成功 firewall-cmd --list-ports
Gitlab 搭建完成
到这里 Gitlab 就安装完成了,在主机浏览器里输入地址,就能访问了:
首次登录用户名是 root
,修改密码后就可以登录了。
FAQ
- Gitlab 服务器迁移后,仓库的 clone 地址还是之前的地址?
在/etc/gitlab/gitlab.rb
修改 gitlab 服务器地址之后,还需要再修改个文件才能使仓库的 clone 地址也变化:vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
下一篇:Android 持续集成实践(二)——配置 Docker + gitlab-runner 实现线上自动编译