集群部署详解

集群部署详解,第1张

docker+gitlab+gitlab-runner部署详解

本文主要介绍docker+gitlab+gitlab-runner的详细部署。通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

环境

服务器:centos7

客户端:窗口

Docker+gitlab+gitlab-runner部署在centos7上,win10通过ssh连接。开发人员只需提交代码就可以上传项目文件、打包图像、发布和运行测试。

一、在centos7上安装docker和Docker-Compose

安装docker:

1.Docker要求CentOS系统内核版本高于3.10。检查此页面上的先决条件,以验证您的CentOS版本是否支持Docker。

通过uname-r命令检查您当前的内核版本。

$uname-r

2.以root权限登录Centos。确保yum包更新为最新版本。

$sudoyumupdate

3.卸载旧版本(如果已安装旧版本)

$sudoyumremovedockerdocker-commondocker-selinuxdocker-engine

4.安装需要的软件包,yum-util提供yum-config-manager功能,另外两个依赖于devicemapper驱动。

$sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2

5.设置yum源

$sudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo

6.您可以查看所有仓库中的所有docker版本,并选择要安装的特定版本。

$yumlistdocker-ce--showduplicates|sort-r

7.安装docker

$sudoyuminstalldocker-ce#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0$sudoyuminstall<FQPN>#例如:sudoyuminstalldocker-ce-17.12.0.ce 如果错误: 问题:packagedocker-ce-3:19.03.8-3.el7.x86_64requirescontainerd.io>=1.2.2-3,butnoneoftheproviderscanbeinstalled解决:https://www.cnblogs.com/suanmiaoup/p/12772140.html输入:yuminstall-yhttps://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm再输入:yum install docker-cedocker-ce-clicontainerd.io

8、启动并加入开机启动。

$sudosystemctlstartdocker $sudosystemctlenabledocker

9.验证安装是否成功(有两部分,客户端和服务,表示docker安装和启动成功)

$dockerversion

10.建议更换docker的图像源:

1.修改或创建daemon.json文件:VI/etc/docker/daemon.JSON

将以下配置写入文件,保存并退出(百度,不会 *** 作的人,命令vi):

{   "registry-mirrors":["http://hub-mirror.c.163.com"] }

2.重启docker:systemctl重启docker

安装docker-compose:

参考https://docs.docker.com/compose/install/,官网

1、运行此命令下载DockerCompose的最新版本:

sudocurl-L"https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose

2、对二进制文件应用可执行权限:

sudochmod+x/usr/local/bin/docker-compose

2。拉中文gitlab的图片

地址:https://hub.docker.com/r/twang2218/gitlab-ce-zh

1.使用xshell+xftp在centos7中创建用于存储日志、配置和数据的文件夹。

文件夹结构如下:

gitlab -config -logs -data docker-compose.yml

2.使用docker-compose.yml启动。

version:'3' services: gitlab: image:'twang2218/gitlab-ce-zh:11.1.4' restart:unless-stopped hostname:'gitlab.domain.com' container_name:gitlab environment: TZ:'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG:| external_url'http://gitlab.domain.com/' registry_external_url'https://gitlab.domain.com' gitlab_rails['gitlab_shell_ssh_port']=1022 gitlab_rails['time_zone']='Asia/Shanghai' #gitlab_rails['smtp_enable']=true #gitlab_rails['smtp_address']="smtp.exmail.qq.com" #gitlab_rails['smtp_port']=465 #gitlab_rails['smtp_user_name']="[email protected]" #gitlab_rails['smtp_password']="password" #gitlab_rails['smtp_authentication']="login" #gitlab_rails['smtp_enable_starttls_auto']=true #gitlab_rails['smtp_tls']=true #gitlab_rails['gitlab_email_from']='[email protected]' ports: -'80:80' -'443:443' -'1022:22' volumes: -./data:/var/opt/gitlab -./config:/etc/gitlab -./logs:/var/log/gitlab

如果您的服务器有域名,请用实际的域名替换上面的gitlab.domain.com。

实验中,还可以直接修改/etc/hosts来方便测试。例如:127.0.0.1gitlab.example.com

3.cd到gitlab目录启动docker-composeup-d,稍微等一下。。

4.启动后,打开浏览器访问gitlab.domain.com。

5.到GitLab的SSH连接

首先,我们需要获得一个SSH密钥,并输入

cat~/.ssh/id_rsa.pub

如果出现以ssh-rsa开头的字符,说明本地有ssh密钥,我们可以直接使用。如果没有,我们需要自己创建一个SSH密钥。

6.创建SSH密钥

输入以下命令创建SSH密钥。

ssh-keygen-trsa-C"[email protected]"-b4096

之后可以输入上面的cat命令或者pbcopy直接复制生成的ssh密钥。

pbcopy<~/.ssh/id_rsa.pub

在GitLab的帐户设置中找到SSH密钥并添加这个密钥。

7.到端口1022的SSH连接

通常,您已经可以通过git命令连接到我们部署的git实验室,但是这里的不同之处在于,我们将容器的22端口映射到主机的1022端口,并且我们需要指定要连接的端口。

[email protected]

同时我们还需要更改GitLab的配置文件中的ssh端口(如果上面已经配置了,就不使用了),否则GitLab中为我们生成的项目连接地址将无法连接。/gitlab/config/gitlab.rb

gitlab_rails['gitlab_shell_ssh_port']=1022

更改ssh端口后,重启gitlab容器,之后我们的项目ssh连接地址将变成:

ssh://[email protected]:1022/test/projectname.git

目前为止,我们已经完成了GitLab的部署。

三。提取gitlab-runner映像

地址:https://hub.docker.com/r/gitlab/gitlab-runner

1.使用xshell+xftp在centos7中创建用于存储日志、配置和数据的文件夹。

文件夹结构如下:

gitlab-runner -config docker-compose.yml

2.使用docker-compose.yml启动。

version:'3' services: runner: image:'gitlab/gitlab-runner:v11.4.2' container_name:gitlab-runner restart:always networks: -gitlab_default volumes: -./config:/etc/gitlab-runner -/var/run/docker.sock:/var/run/docker.sock networks: gitlab_default: external:true

其中gitlab_default是上述gitlab的网络。

注意:gitlab-runner的版本要尽可能对应gitlab,否则无法连接gitlab。

3.启动docker-composeup-d从cd到gitlab目录。

四。配置gitlab-runner以连接到gitlab

1.注册gitlab-runner。

dockerexec-itgitlab-runnergitlab-runnerregister

2.我们会输入http://GitLab.domain.com或者http://ip:port,也就是我们本地安装的gitlab。

3.请输入该跑步者的gitlab-ci令牌。需要Gitlab-ci令牌。

在项目的管理区->:你可以在runners中找到它(这里你注册了共享类型runner)

4.输入描述,例如:测试。

5.输入标签(离开空或者您可以稍后编辑它)

6.选择当遇到未标记的提交时是否执行。我们选择真实。

7.是否将这个跑步者锁定到当前项目,我们选择false。

8.选择遗嘱执行人

这一步比较重要(SSH,Docker+Machine,Docker-SSH+Machine,Kubernetes,Docker,Parallels,VirtualBox,Docker-SSH,Shell)

我们选择docker。

9.选择默认使用的镜像:docker:stable

注册后,在GitLab获得gitlab-citoken的页面上可以看到我们刚刚注册的runner。

同时可以看到gitlab-runner/config下生成一个config.toml的文件。该文件的内容如下:

concurrent=1 check_interval=0 [[runners]] name="test" url="http://192.168.1.157/" token="69c0ff735a76c0bb3cce977a361661"#这个token是gitlab-runner根据第三步骤的token生成的 executor="docker" [runners.docker] extra_hosts=["gitlab.domain.com:192.168.1.157"]#如果在执行上面步骤中碰到连接不上gitlab,是因为gitlab-runner在docker内部解析不了gitlab.domain.com,通过添加配置这个可以解决问题 tls_verify=false image="docker:stable"#这里之所以这样是因为基于这个镜像它包含了docker等工具,可以在gitlab-runner执行的.gitlab-ci.yml中有docker指令时而无需再安装docker参考地址:https://docs.gitlab.com/ee/ci/docker/using_docker_build.html privileged=false#使用docker-in-docker时通常为true disable_cache=false volumes=["/var/run/docker.sock:/var/run/docker.sock","/cache"] shm_size=0 [runners.cache]

或者先直接配置,gitlab-runner运行时会自动加载配置文件。

参考地址:build.htmlhttps://docs.gitlab.com/ee/ci/docker/using码头

V.提交项目代码以完成CI/CD

1.补充。项目根目录下的gitlab-ci.yml,项目代码提交后会自动运行该文件。

image:docker:stable image: name:docker/compose:1.23.2#updatetagtowhateverversionyouwanttouse.这个是因为我下面脚本用到docker-compose entrypoint:["/bin/sh","-c"] before_script: -dockerversion -docker-composeversion build: script:#下面脚本根据自己情况写 -COMPOSE_HTTP_TIMEOUT=200docker-compose-fdocker-compose-efk.ymlup-d#这是因为我的项目已经用docker-compose编排好了 -COMPOSE_HTTP_TIMEOUT=200docker-composeup-d--build--force-recreate

2.在win10上通过git提交代码

转到光盘的根目录。如果安装了git,可以直接打开根目录下的gitbash执行,如果没有安装可以打开powershell。

gitinit#如果还没有初始化 gitadd.#把项目都添加进去 gitcommit-m"init"提交到git [email protected]:1022/root/test.git#注意端口为1022这个是上面运行gitlab是指定的,执行一次就行了 gitpush-uoriginmaster#推送到服务器gitlab上

关于docker+gitlab+gitlab-runner的详细部署,本文到此结束。有关dockergitlabgitlab-runner部署的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/774234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存