centos7搭建gitlab+jenkins+k8s的服务环境,含gitlab-runner配置

1.安装虚拟机软件并创建CentOS 7的虚拟机点击查看安装说明(在install centos7的过程中,network设置中需要开启网络连接,才能联网,不让后期设置nat或者桥接等等都很麻烦,还没法联网,导致yum的各种failed)

2.测试centos7能连通外网

连接外网.jpg

虚拟机上的centOS安装个VMware Tools便于电脑和虚拟机间的文件传输和粘贴复制等等。
无桌面版的centOs 7 参考这个安装VMware Tools

CentOS 7 安装JAVA环境说明(JDK1.8)

或者将主机某个文件夹作为共享文件夹,将下载好的jdk文件放入主机共享文件夹中,在虚拟机的 /mnt/hgfs 下可以查看共享文件夹,从这里导入主机文件到虚拟机上进行解压安装。解压安装方式可参考安装说明

CentOS 7 安装Docker说明

或者如下方式:

1、更新一下系统
    yum update -y
2、安装docker
   yum install docker -y
3、加入docker镜像源(如果不更新源,docker将会去docker官网获取镜像源,不科学上网,可能导致docker拉取不到镜像源)
   vi /etc/docker/daemon.json
   #加入如下配置
    {
    "registry-mirrors": [ "https://registry.docker-cn.com"]
   }
   # 保存退出
CentOS 7 安装Jenkins说明

若提示-bash: wget: command not found
使用下面命令安装wget

yum -y install wget

也可以参照下面的方法:
1、去jenkins官网获取下载地址:https://jenkins.io/

jenkins官网.jpg

进入文档说明.jpg

环境说明与获取下载链接.jpg
下载jenkins.jpg

jenkins下载完成.jpg

下载完成后,可使用命令启动jenkins,这里以7368端口为例,首次启动会生成访问密码,记得复制好密码,先设置主机可访问虚拟机服务后,再执行下面的启动命令。

java -jar jenkins.war --httpPort=7368

启动jenkins.jpg

虚拟机查看当前已开启的端口列表

netstat -ntlp

设置主机可访问虚拟机上的jenkins,先使用命令查看虚拟机的IP

ifconfig

查看ip地址.jpg

打开编辑-虚拟网络编辑器,设置NAT网络


设置NAT.jpg
添加端口转发.jpg
添加虚拟机IP和端口.jpg

执行启动命令,可在主机浏览器访问192.168.164.129:7368。


主机浏览器访问.jpg
CentOS 7 安装kubernetes:https://github.com/liuyi01/kubernetes-starter

1、预先环境准备
2、基础集群部署-kubernetes-simple
3、完整集群部署-kubernetes-with-ca
4、在kubernetes上部署微服务

CentOS 7 安装harbor
CentOS 7 安装git、gitlab Docker搭建自己的GitLab或者尝试来自github的安装gitlab教程或者尝试
1、安装git
  yum install git -y
2、查看是否安装成功
  git --version
3、配置基本信息
  git config --global user.name="testname"
  git config --global user.email hs1150@qq.com
4、查看配置信息
  git config --list

使用docker安装gitlab服务

1.拉取官方gitlab镜像
  docker pull gitlab/gitlab-ce:latest
2.新建一个文件夹,利用docker开启gitlab容器
  mkdir gitlab
  cd gitlab
  vi Dockerfile
在Dockerfile中加入内容
  FROM gitlab/gitlab-ce     #镜像名称
  RUN echo "This is a test about docker-gitlab"
3.保存Dockerfile后,构建容器并启动容器(这里的容器没有定义hostname,会让仓库地址的域名变成一个随机字符串,为了便于后期更改配置,用第4步的方式启动容器)
  docker build -t gitlab .
  docker run -d -p 8086:80 gitlab
4.将服务器的444/8087/23端口分别映射容器内部的443/80/22端口,容器名称为gitlab
  docker run --detach --hostname gitlab.ynpay.cc --publish 444:443 --publish 8087:80 --publish 23:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab
最后这里的gitlab是镜像的名字,也可以用镜像id代替。

按照上面的方式,让gitlab容器运行起来是没有问题的,但是当在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,域名默认访问80端口,可能出现新建一个仓库,但地址中不带端口号,会让gitlab-ci.yml的脚本无法clone这个项目,所以需要在gitlab.rb中配置指定的仓库地址url。

#宿主机上的路径是 srv/gitlab/config/gitlab.rb
1. 配置http协议所使用的访问地址
  external_url 'http://gitlab.ynpay.cc:8087'
2.配置ssh协议所使用的访问地址和端口
  gitlab_rails['gitlab_ssh_host'] = 'gitlab.ynpay.cc'
  gitlab_rails['gitlab_shell_ssh_port'] = 23
#上述位置的域名也可以使用ip代替
3.添加nginx设置,避免设置external_url后无法访问
  nginx['listen_port'] = 80
#默认情况下,nginx监听的端口为external_url中定义的,或者默认的80/443。所以刚nginx是监听的8087端口。而docker run的时候是暴露的80端口,所以根本就访问不了。 

安装gitlab Runner可以参考安装Runner文档

1.安装gitlab-ci-multi-runner
  curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
2.安装
  yum install gitlab-ci-multi-runner
3.注册并启动runner
  gitlab-ci-multi-runner register
或者使用
  gitlab-runner register
  #根据提示输入url和token,还有tag和executor,完成注册后,可以在gitlab服务管理端看到一个共享的runner
  #注册后记得启动runner
  gitlab-ci-multi-runner start
4.查看runner的配置信息
  gitlab-runner list
  #也可以直接打开配置文件进行查看 
  vim /etc/gitlab-runner/config.toml
5.删除注册信息
  gitlab-runner unregister --url http://192.168.1.2/ci --token 387ed6c05fef248d2183f9f45b9cda 
#这个操作是不可逆的,为了防止出错可以先备份一下/etc/gitlab-runner/config.toml配置文件
#gitlab-runner默认将项目clone到/home/gitlab-runner/builds中

修改runner配置时,进入修改/etc/gitlab-runner/config.toml文件

使用CICD(持续构建与持续部署)

配置好了runner,想要开始自动构建还需要在项目根目录添加一个.gitlab-ci.yaml文件。 关于.gitlab-ci.yaml文件的配置说明可参考官方文档

1.使用shell让程序自动部署,可新建一个文件夹专门存放可执行的脚本
  mkdir shell
  cd shell
  vi test.sh
#进入test.sh中编辑内容
2.让脚本具有可执行权限
  chmod -x test.sh
3.执行命令
  sh test.sh

注意:

1.如果是存在共享Runner 则默认使用共享Runner去编译构建等等,但如果有指定的Runner,那么在gitlab-ci的文件中的job中加入tags的标签。可参考学习Gitlab-CI持续集成之Runner配置和CI脚本
2.不建议什么服务都依赖于docker来操作,当docker容器太多时,如果网络出现问题,导致服务器无法访问时,不易排查原因,部分重要或基础的服务可使用注册为本地服务的方式来开启,当服务器恢复正常时,这些基础服务即可使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容