1 克隆一台装有docker的VMware虚拟机,修改主机IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
sudo systemctl restart network
修改如下
注意: VMware的网关查看
2 安装gitlab
2.1 获取rpm安装包,并且解压
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm
2.2 修改配置
vim etc/gitlab/gitlab.rb
修改地址为域名或者当前的IP地址即可,如下图
配置生效
gitlab-ctl reconfigure
注意:
1.如果修改gitlab占用的端口,这里需要在IP后面加上例如 ":8090"
2.同时修改nginx的 /var/opt/gitlab/nginx/conf/gitlab-http.conf的listen指定端口。 然后重新执行上面的配置生效命令
2.3 gitlab服务启动、停止
提前关闭类似于httpd这样占用80端口的服务
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl status
既可访问 (第一次访问,输入两次密码进行初始化。然后账号root和密码password登录)
3 Gitlab Runner
3.1 runner的介绍
简单介绍:Go语言编写的一个开源项目,作用是负责执行 GitLab CI/CD 管道中的作业(job),包括构建、测试和部署等任务。
类型
- shared共享类型,运行整个平台项目的作业(gitlab)
- group项目组类型,运行特定group下的所有项目的作业(group)
- specific项目类型,运行指定的项目作业(project)
状态
- locked: 锁定状态,无法运行项目作业
- paused: 暂停状态,暂时不会接受新的作业
3.2 Gitlab Runner安装
这里主要通过docker来安装
环境: VMware的虚拟机,系统centos7.6,IP:192.168.255.130,已经安装docker
拉取镜像
docker pull gitlab/gitlab-runner:v12.9.0
启动容器
需要先创建目录 /data/gitlab-runner/config
docker run -it -d -v /data/gitlab-runner/config/:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0
因为这个容器是没有交互式命令行界面(CLI),特别是那些设计为仅作为服务运行的容器。 如果退出后,想要进入容器里面交互需要
docker exec -it [容器ID] /bin/bash
3.3 runner的注册
方法一: 可以在容器里面通过命令交互式注册(可以用,但不怎么推荐)
gitlab-runner register
方法二: 参数一次设置
启动容器
docker run -d --rm -v /var/run/docker.sock:/var/run/docker.sock -v /data/gitlab-runner/config/:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0
执行注册
docker exec -it 8e2384f9c240 gitlab-runner register --non-interactive --url "http://192.168.255.131" --registration-token "xszGzxMUMZDGX-3h8xXa" --executor "shell" --description "docker-runner" --tag-list "deploy,build" --run-untagged="true" --locked="false" --access-level="not_protected"
检查runner
gitlab-runner verify
注册url和注册token的来源
4 pipeline
4.1 创建一个项目,然后添加 .gitlab-ci.yml文件,编写pipeline脚本
stages:
- build
- deploy
build:
stage: build
tags:
- build
only:
- master
script:
- echo "mvn clean"
- echo "mvn install"
deploy:
stage: deploy
tags:
- deploy
only:
- master
script:
- echo "hello deploy"
修改readme文件,即可触发自动构建