GitLab Jenkins CI/CD 自动化部署

安装GitLab
sudo apt-get install curl openssh-server ca-certificates postfix
## *注意, 在安装 postfix 的时候, 选择"internet site"
## *然后, "system mail name" 服务器的IP地址/域名

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo apt-get install gitlab-ee

# 4.修改相关配置
sudo vi /etc/gitlab/gitlab.rb
​```修改内容
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
# external_url 'http://ubuntu'
# 修改第一部分 http://<服务器IP>:<gitlab访问端口>
external_url 'http://192.168.6.132:11000'

### Advanced settings
# unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8080
# 修改第二部分
unicorn['port'] = 11001

##! Advanced settings. Should be changed only if absolutely needed.
# prometheus['listen_address'] = 'localhost:9090'
# 修改第三部分
prometheus['listen_address'] = 'localhost:11002'```
# 重新加载GitLab配置
sudo gitlab-ctl reconfigure
# 其他选项
sudo gitlab-ctl `start`/`stop`/`restart`
安装 Jenkins
  • Jenkins 镜像下载 http://mirrors.jenkins-ci.org/

  • latest 地址 jenkins.war

  • 在安装好java环境时运行 jenkins.war

  • nohup java -jar jenkins.war --httpPort=12000 > jenkins.log &

  • 进入太慢可中途停止程序编辑 UpdateCenter 文件修改插件仓库地址

vim /root/.jenkins/hudson.model.UpdateCenter.xml

​```
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <!-- 默认配置 <url>https://updates.jenkins.io/update-center.json</url> -->
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>
​```
  • 查看默认密码: cat /root/.jenkins/secrets/initialAdminPassword
  • 在选择初始安装的插件时选择:
    • Install suggested plugins 安装建议的插件, 安装jenkins社区认为最有用的插件。
  • 汉化 Jenkins

在这里插入图片描述

  • Manage Jenkins > Configure System 配置 Publish over SSH , 如果配置中没有 Publish over SSH就安装插件, 插件名 Publish over SSH

在这里插入图片描述

  • Manage Jenkins > Global Tool Configuration 配置编译工具
    在这里插入图片描述

  • 创建一个item选择 Freestyle project

在这里插入图片描述

  • 配置代码仓库地址
    在这里插入图片描述

  • GitLab 账号密码

在这里插入图片描述

  • 构建配置 (调用顶级maven目标)

在这里插入图片描述

  • 构建后操作

在这里插入图片描述

  • 目录结构
data/
├── code
│   └── target
│       └── gitlab-demo-0.0.1-SNAPSHOT.jar
├── log
│   ├── df-api-server-0.0.1-SNAPSHOT-20210128.log
│   ├── df-api-server-0.0.1-SNAPSHOT-20210129.log
│   └── df-api-server-0.0.1-SNAPSHOT-20210131.log
└── script
    ├── start.sh
    └── stop.sh
  • 启动/停止脚本内容
doudio@ubuntu:/data/script$ cat start.sh 
echo 'Start the program : gitlab-demo-0.0.1-SNAPSHOT.jar'
chmod 777 /data/code/target/gitlab-demo-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
current_date=`date -d "-0 day" "+%Y%m%d"`
echo $current_date
cd /data/code/target/
nohup java -jar /data/code/target/gitlab-demo-0.0.1-SNAPSHOT.jar --server.port=8081 > /data/log/df-api-server-0.0.1-SNAPSHOT-$current_date.log 2>&1  &
echo 'start success'
doudio@ubuntu:/data/script$ cat stop.sh 
#!/bin/bash
echo "Stop Procedure : gitlab-demo-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep gitlab-demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi
  • 到此已经可以实现登陆Jenkins点击部署了, 如果需要配置只要推送代码后就自动部署再来进行如下配置

  • 修改 Jenkins 全局安全配置

在这里插入图片描述

  • 修改 itm 中的构建触发器, 如果触发器中没有 GitLab 就安装相关(Gitlab , Gitlab Hook) 插件

在这里插入图片描述

  • 在GitLab中配置推送仓库后触发构建操作
    在这里插入图片描述

  • 如果有如下报错需要修改 GitLab的 Admin area (管理中心) => Settings 配置

    • Urlis blocked: Requests to localhost are not allowed (URL被阻止:不允许对localhost的请求)

在这里插入图片描述

  • 整合加实践
  • 安装 >> https://blog.csdn.net/ruangong1203/article/details/73065410/
  • 配置SpringBoot >> https://www.cnblogs.com/wfd360/p/11314697.html
  • 配置联动 >> https://www.cnblogs.com/mingerlcm/p/12702528.html
  • jenkins镜像 >> https://www.cnblogs.com/yjssjm/p/12658970.html
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值