一、安装环境准备
Jenkins,Gltlab,Nexus均使用docker容器进行安装,Maven安装在Jenkins容器内。
服务器信息:
IP | 主机名 | 部署软件 | CPU(核) | 内存(G) |
---|---|---|---|---|
192.168.1.98 | gitlab | Gitlab | 4 | 8 |
192.168.1.99 | cicd | Jenkins,Nexus | 4 | 8 |
1.修改主机名
#分别修改两台服务器的主机名
#192.168.1.98
hostnamectl set-hostname gitlab
#192.168.1.99
hostnamectl set-hostname cicd
2.修改hosts文件
vim /etc/hosts
192.168.1.98 gitlab
192.168.1.99 cicd
3.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
4.关闭SElinux
#临时关闭SElinux
setenforce 0
#永久关闭SElinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
5.离线安装Docker
1.下载 Docker 二进制文件(离线安装包)
下载地址:https://download.docker.com/linux/static/stable/x86_64/
注:本文使用 /x86_64/docker-23.0.1.tgz,注意对应操作系统类型。
2.通过 FTP工具将 docker-23.0.1.tgz 上传到服务器上
3.解压安装包
tar zxf docker-23.0.1.tgz
4.将docker 相关命令拷贝到 /usr/local/bin,方便直接运行命令
sudo cp docker/* /usr/local/bin/
5. 将docker注册成系统服务
#在 /usr/lib/systemd/system/ 目录下创建docker.service 文件
vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/local/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
6.启动 / 停止 docker 服务
systemctl start/stop docker
7.开机自启/取消开机自启 docker 服务
systemctl enable/disable docker
二、Gitlab安装
1.Gitlab介绍
GitLab 是一个用于代码仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务平台,
通过该平台可以实现Github类似的web系统,可以实现浏览代码、管理项目、管理团队人员、管理代码分支、代码提交记录等功能。Gitlab是目前互联网公司最流行的代码版本控制平台。
2.Gitlab与Github对比
gitlab:比较适合公司内部的项目管理,用来管理项目成员、代码提交、项目运维。分为社区免费版和企业收费版,针对中小型公司推荐使用社区免费版,功能就够用了。
github:作为“最大的同性交友网站”,里面的大部分项目都是开源的,通过全世界最大的程序员交流平台,可以分享自己的技术、提升自己的知名度。作为公司的内部项目管理就不太适合了。
3.Gitlab安装步骤
安装GitLab官方推荐至少4G的内存,否则可能会卡顿或者运行非常慢,建议采用4G以上的服务进行测试,或者本地搭建虚拟机的方式来做。
3.1 搜索Gitlab镜像
docker search gitlab
3.2 下载Gitlab社区免费版最新镜像
#说明:ce 表示社区免费版 ,ee 表示企业付费版
docker pull gitlab/gitlab-ce
3.3 查看镜像是否下载成功
#获取本地镜像列表查看是否有gitlab-ce的镜像
docker images
3.4 运行Gitlab镜像
#创建Gitlab数据存储目录
mkdir -p /usr/local/gitlab_data/gitlab/{
config,logs,data}
#执行启动容器
docker run -d \
--hostname 192.168.1.98 \
--name gitlab \
--restart always \
-p 8082:443 -p 8083:80 -p 8084:22 \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/gitlab_data/gitlab/config:/etc/gitlab \
-v /usr/local/gitlab_data/gitlab/logs:/var/log/gitlab \
-v /usr/local/gitlab_data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
参数说明:
-d 指定后台运行
--hostname 指定主机名,可删除
--name 指定容器名
-p 端口映射 443 https端口 80 http端口 22 ssh端口
--restart always 容器停止后的重启策略: 容器退出时总是重启
-v 指定挂载存储卷首先在宿主主机创建对应的目录
3.5 配置防火墙开放云服务器的端口
#如果你购买的是云服务器的话,需要设置外网端口开放。常见的阿里云、华为云、腾讯云都可以很方便设置端口开放,大家可以自行百度。
#防火墙的设置命令如下:
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #开启防火墙
systemctl stop firewalld #关闭防火墙
firewall-cmd --list-ports #查看开放端口
#设置8082-8084端口开放
firewall-cmd --zone=public --add-port=8082-8084/tcp --permanent
firewall-cmd --list-ports #再次查看是否开放
3.6 测试能否正常访问
通过再浏览器访问地址:http: