当前位置: 首页 > article >正文

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

 1. 机器准备

开发10.0.0.204
gitlab10.0.0.201
jenkins10.0.0.200
web10.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 在浏览器中验证是否显示修改后的页面


http://www.kler.cn/a/412841.html

相关文章:

  • 2686694 - 操作方法:MSEG - DBSQL_REDIRECT_INCONSISTENCY
  • 聊聊Flink:这次把Flink的触发器(Trigger)、移除器(Evictor)讲透
  • 【pyspark学习从入门到精通21】机器学习库_4
  • 学习使用jquery实现在指定div前面增加内容
  • 《免费的学习网站推荐3》
  • Django 自定义路由转换器
  • docker快速安装zookeeper
  • 【前端学习笔记】ES6 新特性
  • 书生大模型实战营第四期-入门岛-4. maas课程任务
  • 自动化测试工具Ranorex Studio(四十三)-RANOREXPATH编辑器5
  • 区块链:波场-TRON链
  • Windows Git Bash使用脚手架创建项目时无法交互切换选项
  • 去哪儿大数据面试题及参考答案
  • 上天入地 灵途科技光电技术赋能空间感知
  • Android 单选框RadioGroup+RadioButton
  • 五,[GXYCTF2019]Ping Ping Ping1
  • 【Linux打怪升级记 | 报错02】-bash: 警告:setlocale: LC_TIME: 无法改变区域选项 (zh_CN.UTF-8)
  • Burp入门(3)-爬虫功能介绍
  • 面向对象进阶-抽象类
  • Python基础学习-11函数参数
  • 视觉经典神经网络与复现:深入解析与实践指南
  • node.js中实现router模块化管理
  • hive的cascade使用解释
  • 泛型擦除是什么?
  • MongoDB 语法简析
  • 贴代码PasteForm框架之框架核心帮助类PasteFormHelper说明