Jenkins+Gltlab+Nexus+Maven安装实现CICD自动打包部署

一、安装环境准备

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

你可能感兴趣的:(jenkins,maven,运维,ci/cd)