前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【ChatOps系列】GitLab系列环境准备

【ChatOps系列】GitLab系列环境准备

作者头像
thinkeridea
发布2019-11-04 11:15:28
6750
发布2019-11-04 11:15:28
举报

在搭建 GitLab 系列 ChatOps 时需要掌握一些基础的技能知识,整个 ChatOps 涉及到很多方面,我们至少需要掌握以下技能:

  • Linux 示例中我们主要以 CentOS 7 为主,但是容器内的系统会多种多样
  • Docker 所有的环境都整合在 Docker 容器中,这能简化搭建的过程以及提升交流的效率
  • Docker Compose 所有的容器我们均使用 Docker Compose 进行构建,很方便分享
  • Python 这个很重要,不能忽视它,整个自动部署均是 Pyhon 实现
  • Fabric 这个是 Python 基于 SSH 的应用部署和系统管理的库,我们基于这库实现从部署机到服务器
  • JavaScript/CoffeeScript 机器人 hubot 需要这些语言知识来扩展,当然还有一些其它地方会用到这些。
  • VMware/VirtualBox 需要搭建本地虚拟机模拟环境,示例使用 VirtualBox 演示

需要掌握的技能会很多,如果你已经掌握,那么跟着教程可以很快的完成 ChatOps 的部署,如果还没有掌握,可以找时间简单学习一下。其中一些组件是可以替换的,比如 :Fabric 就有很多选择,例如:Ansible、Shell 等可以用来操作远程机器的工具。当然也可以使用机器人连接 Jenkins、Kubernetes 等支持自动部署的服务,本系列中使用 hubot-gitlab-deploy 结合 Fabric 来实现自动部署。

虚拟机搭建

我下载的是 CentOS7 Minimal ISO 版本的镜像,如果对 linux 比较熟悉,那么安装任何版本系统都是可以的,这里并不详细讲解 Liunx 的全部安装过程,只讲解虚拟机配置及系统相关配置,供大家搭建时做参考。

VirtualBox 分配 4G 内存、500G 磁盘,同时添加两块网卡,一个是 Host-Only 模式,一个是 NAT 模式。

Host-Only 模式网卡可以给主机和虚拟机之间提供私有的虚拟网络,我们实验环境需要一个稳定的不受实际网络影响的虚拟网络,我是笔记本经常办公司到家里,网络环境会改变,但是我主机和虚拟机通信网络不会变化。

NAT 模式网卡是为了虚拟机可以上网,实际 Host-Only 的网卡也可以上网,但是它只能是使用有线连接时可以,我的笔记本大多数都是 WiFi 连接网络,这导致我没有办法上网,增加这块网卡可以实现上网,但是主机无法访问虚拟机,所以我需要两块网卡结合使用。

大家只需要能够让主机访问虚拟机,虚拟机可以访问虚拟机,虚拟机可以访问网络(我们需要安装一些东西)。

VirtualBox详细配置
VirtualBox详细配置

系统分区可以根据自己的喜好进行,我尽量模拟真实的生成环境,一个较小的系统盘,阿里云服务器是 40G,一块数据盘,我把其它容量都分配给 /data 数据盘。

代码语言:javascript
复制
$ df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda1        40G  1.2G   39G    3% /  # 系统盘
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G  8.5M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda3       452G   33M  452G    1% /data  # 数据盘
tmpfs           379M     0  379M    0% /run/user/0

安装完成系统,登陆之后需要给虚拟机设置一个固定 ip。使用 ip address 查看网卡信息,找到 192.168.*.* 的网卡,记录下网卡名称,我的是 enp0s3,然后编辑网卡对应的配置文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3,具体如下:

代码语言:javascript
复制
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"  # 使用静态网络
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="6f19c6e8-87de-42a5-afdb-2fe8a8bc74a8"
DEVICE="enp0s3"
ONBOOT="yes" # 开机启动
IPADDR=192.168.56.6  # 网络地址,根据之前查询的网段分配
NETMASK=255.255.255.0 # 子网掩码
#GATEWAY=192.168.56.1 #默认网关,如果和我的网络配置一致就不用配置了
#DNS1=192.168.7.1 #DNS 配置,如果和我的网络配置一致就不用配置了

重启网卡 systemctl restart network 使配置生效,然后在主机使用 ssh 登陆虚拟机,确定网络畅通,ssh root@192.168.56.6

之后我们就可以使用 “无界面” 启动虚拟机,使用 ssh 登陆虚拟机进行配置。

Docker 环境安装

官网有完整的安装教程在:https://docs.docker.com/install/linux/docker-ce/centos/ ,有两种安装方式,我使用在线安装的方式,由于官方镜像无法访问,这里采用阿里云的镜像,只需要执行以下命令即可:

代码语言:javascript
复制
$ yum install -y yum-utils device-mapper-persistent-data lvm2
......
$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
......
$ yum install docker-ce docker-ce-cli containerd.io
......
$ systemctl enable docker
......
$ systemctl start docker
......
$ docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:21:07 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:19:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Docker 已经安装完成了,但是还需要配置一下,首先建议去阿里云申请一个 Docker 镜像加速器地址,去 申请,然后配置 /etc/docker/daemon.json 文件:

代码语言:javascript
复制
$ vi /etc/docker/daemon.json
{
	"data-root": "/data/docker",
	"registry-mirrors": [
		"https://yourcode.mirror.aliyuncs.com" # 替换成你申请到地址
	]
}

$ make /data/docker
$ systemctl restart docker

Docker Compose 安装

相关的文档在 https://docs.docker.com/compose/install/ ,安装比较简单,执行下面的命令即可:

代码语言:javascript
复制
$ curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ chmod +x /usr/local/bin/docker-compose

$ docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

总结

基础环境配置还是比较简单的,配置过程中遇到任何问题多 google 或者在文末留言。

整个体系涉及的技术点比较宽泛,学习者需要多准备和学习。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 虚拟机搭建
  • Docker 环境安装
  • Docker Compose 安装
  • 总结
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档