大体的步骤
- 本地安装VMware虚拟机。然后再虚拟机上安装CentOs7镜像系统。
- 在Linux中安装GitLab-Ce。
- 在Linux中安装GitLab-Runner
- 在自己搭建的GitLab上面创建一个项目,然后拉取到本地然后提交之后实现自动化部署。
步骤一
这一步骤我在之前我的安装Redis文章中有讲解如何安装Linux系统,这边就不多介绍了。不会的小伙伴可以自己去翻看一下我之前的文章。
步骤二、安装GitLab-Ce
1.相关环境、依赖安装 这里的依赖的话可以自己去执行一下,要是你之前有安装过安装也是不会出现什么问题的
yum -y install policycoreutils openssh-server openssh-clients postfix
yum install policycoreutils-python
systemctl enable sshd && sudo systemctl start sshd
systemctl enable postfix && systemctl start postfix
2.关闭防火墙或者防火墙增加白名单
systemctl stop firewalld.service
这个命令是centos系统中永久禁用防火墙的命名
sudo systemctl disable firewalld
3.下载软件 这边这个版本的话使用的是这个,配合centos7刚刚好。
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm/download.rpm
4.开始安装
yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm
5.修改默认端口
cd /etc/gitlab
vi gitlab.rb
6.在文件中修改 external_url和nginx['listen_port']的key对应的内容 这边修改成自己的Linux虚拟机ip就可以,为了能直接就是使用虚拟机访问网络,也可直接将Linux网络设置成桥接模式,你要NAT了,两者的区别我在之前的文章有说过。
(https://blog.csdn.net/weixin_50503886/article/details/133625160?spm=1001.2014.3001.5501)
external_url 'http://192.168.28.64.81'
nginx['listen_port'] = 81
6.重启 之后稍等片刻就可以访问了
gitlab-ctl reconfigure
gitlab-ctl restart
7.页面输入即可访问,能访问,表示gitlab-ce安装成功了
http://192.168.28.64:81
安装好之后需要赶紧登录上去使用root 密码在
/etc/gitlab/initial_root_password
这个文件中赶紧去找到一个password中的密码然后修改一下,因为这个会有24小时就会过期所以需要修改一下。
步骤三、安装GitLab-Runner
下面给大家写一下安装的命令
下载安装包 这里的两个命令直接安装就可以
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
安装
sudo yum install gitlab-ci-multi-runner
注册一下
安装完成之后有一个很重要的步骤就是需要将你上述安装的两者绑定一下所以需要你注册一下。
运行一下这个命令
gitlab-runner register
然后出现的地方给大家一个输入示例
[root@localhost bin]# gitlab-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.28.64:81/
Please enter the gitlab-ci token for this runner:
这里是密钥
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]: 这里随便写记住就行
Please enter the gitlab-ci tags for this runner (comma separated):
这里随便写记住就行
Please enter the executor: ssh, virtualbox, parallels, shell, docker-ssh, docker+machine, docker-ssh+machine, kubernetes, custom, docker:
docker
Please enter the default Docker image (e.g. ruby:2.6):
maven:3.3.9-jdk-8
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
安装之后需要安装一下docker
参考链接:https://zhuanlan.zhihu.com/p/54147784 ; https://blog.csdn.net/yucaifu1989/article/details/116718328
#!/bin/bash
# 移除掉旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# 删除所有旧的数据
sudo rm -rf /var/lib/docker
# 安装依赖包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 添加源,使用了阿里云镜像
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 配置缓存
sudo yum makecache fast
# 安装最新稳定版本的docker
sudo yum install -y docker-ce
# 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
# 启动docker引擎并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
# 配置当前用户对docker的执行权限
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker
操作完成这些之后需要在操作一个地方,把这个勾上
安装之后需要安装一下maven
下载地址:http://maven.apache.org/download.cgi
tar -zxvf apache-maven-3.3.9-bin.tar.gz
重命名:
mv apache-maven-3.3.9 maven-3.3.9
配置环境变量
vi /etc/profile
添加以下内容:
export MAVEN_HOME=/usr/local/maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH
保存退出
source /etc/profile
mvn -v
安装之后需要安装一下jdk8
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
tar -zxvf jdk-8u161-linux-x64.tar.gz
重命名:
mv jdk1.8.0_161 java1.8
配置环境变量
vi /etc/profile
添加以下内容:
export JAVA_HOME=/usr/local/java1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存退出
source /etc/profile
java -version
创建springboot项目
需要在你创建的项目中添加一下密码。
服务器上创建一个文件夹存放文件地址:
mkdir gitlab-project-test
项目下创建文件 .gitlab-ci.yml 下面是内容
# 定义一些变量, 下面各阶段会使用
variables:
server_ip: 192.168.28.64
jar_name: demo-0.0.1-SNAPSHOT.jar
java_path: /usr/local/java1.8/bin
upload_path: /usr/local/gitlab-project
# 定义执行的各个阶段及顺序
stages:
- build
- upload
- deploy
# 使用 maven 镜像打包项目
maven-build:
stage: build
image: maven:3.3.9-jdk-8
script:
- mvn package -B -Dmaven.test.skip=true
cache:
key: m2-repo
paths:
# - .m2/repository
- E:\apache-maven-3.6.0\repository
artifacts:
paths:
- target/$jar_name
# 上传生成的 jar 包到你的应用服务器,这里使用 ictu/sshpass 这个镜像,是为了使用 sshpass 命令
upload-jar:
stage: upload
image: ictu/sshpass
script:
- ls -l target/
- sshpass -p $ssh_password scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no target/$jar_name root@$server_ip:$upload_path/$jar_name
# 启动 SpringBoot jar包
deploy-test:
stage: deploy
image: ictu/sshpass
script:
- sshpass -p $ssh_password ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$server_ip "nohup $java_path/java -jar $upload_path/$jar_name >/dev/null 2>&1 &"
写在最后
最后就是大功告成了,当然本次也遇到一个问题就是创建项目的时候本地依赖获取不到,下期解决之后给大家写文章。欢迎大家自己动手操作遇到问题的时候评论留言,或者加我微信问我也行,要是大家觉得文章有用不妨推荐一下或者收藏点赞一下,谢谢大家👍。