Jenkins-Gitlab 前端项目自动化部署

1. 机器准备

|---------|------------|
| 开发 | 10.0.0.204 |
| gitlab | 10.0.0.201 |
| jenkins | 10.0.0.200 |
| web | 10.0.0.202 |

2. 开发主机配置

创建密钥对,将公钥添加到gitlab账号的ssh密钥中

root@dev \~#ssh-keygen

root@dev \~#cat /root/.ssh/id_rsa.pub

复制远程仓库的内容到本地

root@dev \~#git clone git@gitlab.lly.org:devops/wheel.git
dns 指向201主机

root@dev \~#vim /etc/netplan/01-netcfg.yaml

......

nameservers:

addresses: 10.0.0.201

3. gitlab 主机配置

配置dns解析

root@gitlab \~#apt update && apt install -y bind9 bind9-utils bind9-host bind9-dnsutils

root@gitlab \~#vim /etc/bind/named.conf.default-zones

......

zone "lly.org" IN {

type master;

file "/etc/bind/lly.org.zone";

};

root@gitlab \~#vim /etc/bind/lly.org.zone

$TTL 1D

@ IN SOA master admin (

1 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS master

master A 10.0.0.201

gitlab A 10.0.0.201

root@gitlab \~#chgrp bind /etc/bind/lly.org.zone

root@gitlab \~#systemctl enable named

root@gitlab \~#systemctl restart named

4. jenkins 主机配置

dns 指向201主机

root@jenkins \~#vim /etc/netplan/01-netcfg.yaml

......

nameservers:

addresses: 10.0.0.201
安装 jenkins 和 jdk

root@jenkins \~#apt update && apt -y install openjdk-17-jdk

root@jenkins \~#ls

jenkins_2.479.1_all.deb

root@jenkins \~#dpkg -i jenkins_2.479.1_all.deb

root@jenkins \~#systemctl status jenkins.service
创建脚本将前端文件并赋予权限

root@jenkins \~#mkdir -p /data/jenkins/scripts

root@jenkins \~#vim /data/jenkins/scripts/test.sh

HOST_LIST="

10.0.0.202"

for host in $HOST_LIST;do

scp -r * root@$host:/var/www/html/

done

root@jenkins \~#chmod +x /data/jenkins/scripts/test.sh
在 jenkins 工具上创建全局凭据(凭据中添加的私钥和gitlab上添加公钥成对即可)

root@jenkins \~#su jenkins

jenkins@jenkins:~/.ssh$ cat /root/.ssh/id_rsa

将查询到的私钥添加到下面private key 中


jenkins@jenkins:~/.ssh$ cat id_rsa.pub

将查询到的公钥添加到对应gitlab账户的ssh密钥中


在jenkins工具上创建任务

5. web 服务器配置

dns 指向201主机

root@web \~#vim /etc/netplan/01-netcfg.yaml

......

nameservers:

addresses: 10.0.0.201
安装 nignx 服务

root@web \~#apt update && apt install nginx -y

6. 验证是否实现自动化部署

在开发主机上修改代码并上传到远程仓库

root@dev wheel#vim index.html

root@dev wheel#git commit -am "change"

root@dev wheel#git push --all

随后用 web 服务器 ip 在浏览器中验证是否显示修改后的页面

相关推荐
ton_tom8 分钟前
设备驱动程序编程-Linux2.6.10-kdb安装-32位
linux·运维·服务器
dddwjzx24 分钟前
嵌入式Linux C应用编程入门——进程 ( 二 )
linux·嵌入式
坐望云起1 小时前
FFmpeg.wasm 纯浏览器端视频压缩与格式转换实战:零服务器、零上传、100% 隐私
服务器·ffmpeg·wasm
cft56200_ln2 小时前
gPTP Master 报文目的 MAC 地址
运维·服务器·网络
jieyucx2 小时前
【系统安全铁律】解密 Linux 权限三色数字密码:chmod 最小化赋权与生产环境避坑指南
linux·安全·系统安全·权限·chmod·777
AOwhisky3 小时前
Linux(CentOS)系统管理入门笔记(第四期)——文件系统(下篇):文件与目录操作实战——cpmvmkdirrmln
linux·运维·笔记·centos·云计算·文件系统
岑梓铭3 小时前
考研408《操作系统》复习笔记,第四章《4.2.2 文件操作、文件共享、文件保护》
linux·考研·操作系统·文件系统·408
Mr.HeBoYan3 小时前
DPDK为什么越来越少使用rte_ring?——从Lock-Free到Run-to-Completion,重新理解现代DPDK架构演进(上)
linux·网络·算法·性能优化·架构·dpdk
一只楚楚猫4 小时前
一篇文章入门Git工具
git
云栖梦泽5 小时前
从 IMX415 摄像头驱动理解 Media Controller 框架
linux·开发语言·c++·嵌入式硬件