总述
程序员,开发、构建、部署项目总是避不开的,要是每次都折腾一回,也挺烦的。那懒人总得想点懒的解决方案吧。构建一套自己的CI/CD,实现一键部署似乎能省点事。这个是版本是基于 JDK1.8 + GitLab + Git + Maven + Jenkins实现的,其他版本尚未验证。
前期准备
2台Linux服务器(我这里是虚拟机),为了方便关闭防火墙
JDK 1.8 版本安装包
git.v2.35.8 安装包
apache-maven-3.9.3-bin.tar.gz 安装包
GItLab(不用准备,直接安装)
Jenkins
安装GItLab(选一台服务器ip:192.168.162.134,4G内存以上)
关闭防火墙
systemctl status firewalld.service
配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
编辑内容
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
更新本地yum缓存
yum makecache
安装gitlab社区版
yum -y install gitlab-ce
配置GitLab
vim /etc/gitlab/gitlab.rb
修改 external_url 为自己的ip+port
external_url 'http://192.168.162.134:8090'
重载配置,重启服务,设置开机自启
gitlab-ctl reconfigure
gitlab-ctl restart
systemctl enable gitlab-runsvdir.service
启动时间有点长。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。大概。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。这么长。
访问http://192.168.162.134:8090
看见这个就算成功了。
登录修改密码
用户名 root
初始密码查看命令:cat /etc/gitlab/initial_root_password
修改后重新登录,至此GitLab安装配置完成,想改其他配置,自行百度解决。
===================================分界线==============================================
以下操作在第二台服务器(ip:192.168.162.135)上
安装JDK
创建/home/soft目录,存放JDK安装包,我的安装包是jdk-8u121-linux-x64.tar.gz
解压安装包
tar -zxvf /home/soft/jdk-8u121-linux-x64.tar.gz
解压后多出一个文件夹 jdk1.8.0_121
配置环境变量
vim /etc/profile
在文件末尾添加
export JAVA_HOME=/home/soft/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存
重载配置
source /etc/profile
验证
java -version
看见版本号即为成功。
安装Maven
在/home/soft目录中上传 apache-maven-3.9.3-bin.tar.gz
解压
tar -zxvf /home/soft/apache-maven-3.9.3-bin.tar.gz
创建 maven 资源库目录
mkdir -p /m2/repository
编辑settings文件
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/m2/repository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/spring</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>edas.oss.repo</id>
<repositories>
<repository>
<id>edas-oss-central</id>
<name>taobao mirror central</name>
<url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>edas-oss-plugin-central</id>
<url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>edas.oss.repo</activeProfile>
</activeProfiles>
</settings>
添加环境变量
vi /etc/profile
在文件末尾添加内容
MAVEN_HOME=/home/soft/apache-maven-3.9.3
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH
重载配置
source /etc/profile
验证
mvn -version
安装Git
卸载Git
yum remove git
进入 Github 中的 git 版本页面 ,或者在镜像站,自行选择版本下载
我用的是git.v2.35.8 ,同样上传到 /home/soft
解压
tar -zxvf /home/soft/git.v2.35.8
提前安装可能需要的依赖
yum -y install curl-devel expat-devel openssl-devel zlib-devel gcc-c++
yum -y install perl-ExtUtils-MakeMaker automake autoconf libtool make
进入到 git-2.35.8 目录,执行编译安装等命令
cd git-2.35.8
make configure
./configure --prefix=/home/soft/git
make profix=/home/soft/git
make install
配置环境变量
vim /etc/profile
在文件末尾添加
export GIT_HOME=/home/soft/git
export PATH=$PATH:$GIT_HOME/bin
保存,重新加载配置
source /etc/profile
验证
git --version
Jenkins安装
下载Jenkins
cd /home/soft
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm
安装
rpm -ivh jenkins-2.346.3-1.1.noarch.rpm
配置
修改Jenkins端口
vim /usr/lib/systemd/system/jenkins.service
修改如下
## 用户名 root权限
User=root
Group=root
##jdk 安装路径
Environment="JAVA_HOME=/home/soft/jdk1.8.0_121"
##端口
Environment="JENKINS_PORT=9090"
设置开机自启
systemctl enable jenkins
登录
访问 http://192.168.162.135:9090
查看初始化密码
cat /var/lib/jenkins/secrets/initialAdminPassword
登录
选择安装推荐的插件.......等待新手入门执行完毕
完成之后根据提示创建管理员账号密码。
配置Jenkins
应用并保存
安装插件
重启Jenkins
新建项目
指定要构建的代码分支
添加控制台输出
保存之后点击构建
start.sh脚本
#!/bin/bash
BUILD_ID=dontKillMe
java -jar /var/lib/jenkins/workspace/test/target/jar包名称.jar &