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 在浏览器中验证是否显示修改后的页面

相关推荐
涛ing18 分钟前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__19 分钟前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚20 分钟前
【Linux】日志设计模式与实现
linux·运维·设计模式
学问小小谢22 分钟前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
yaoxin5211231 小时前
第十二章 I 开头的术语
运维·服务器
ProgramHan1 小时前
1992-2025年中国计算机发展状况:服务器、电脑端与移动端的演进
运维·服务器·电脑
maply4 小时前
VSCode 中的 Git Graph扩展使用详解
ide·git·vscode·编辑器·扩展
深度Linux6 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术
Elastic 中国社区官方博客6 小时前
使用真实 Elasticsearch 进行高级集成测试
大数据·数据库·elasticsearch·搜索引擎·全文检索·jenkins·集成测试
m0_465215797 小时前
TCP & UDP Service Model
服务器·网络·tcp/ip