jenkins(2)

简介: jenkins

环境:

gitlab:192.168.8.10

   jenkins:192.168.8.20

   nginx:192.168.8.30


1.在gitee码云上下载项目代码(gitlab服务器)

cd /root

git clone https://gitee.com/kangjie1209/monitor.git


2.gitlab服务器创建本地代码库

mkdir /web

cd /web    


3.登录gitlab,创建新的web项目

admin area -- new project -- 选择dev组,项目名:web -- create


4.在gitlab本地服务器上传代码到gitlab

cd /web

git init

git remote add origin git@192.168.8.10:dev/web.git

git pull origin master

复制monitor内容到/web

git add .

git commit -m "Initial commit"

git push -u origin master


5.登录jenkins,新建自由项目web

   new item -- create -- freestyle

   -- configure -- 源代码库 -- git -- gitlab路径及公钥认证 -- save

   build now:手动同步测试


6.jenjins实现脚本上传网站代码

(1)开启一台虚拟机,安装nginx

   yum -y install epel-release

   yum -y install nginx

   systemctl start nginx

   systemctl stop firewalld

   setenforce 0

 

(2)在jenkins上编写上传nginx的脚本

mkdir /scripts

vim /scripts/web.sh

添加:

#!/bin/sh

CODE_DIR=/var/lib/jenkins/workspace/web/

WEB_DIR=/usr/share/nginx

IP=192.168.8.30

TIME=`date +%F-%H-%M-%S`

cd $CODE_DIR && tar zcf /tmp/web-${TIME}.tar.gz  ./*

scp /tmp/web-${TIME}.tar.gz $IP:$WEB_DIR

ssh root@$IP "cd $WEB_DIR && mkdir web-$TIME"

ssh root@$IP "cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C web-$TIME && rm -rf web-${TIME}.tar.gz"

ssh root@$IP "cd $WEB_DIR && rm -rf html && ln -s web-$TIME html"

保存退出


(3)jenkins传输公钥到nginx,执行脚本,测试查看nginx网站

ssh-copy-id root@192.168.8.30

sh /scripts/web.sh


(4)Jenkins手动构建,关联脚本,自动上传

   项目web -- configure -- build -- Execute shell -- sh /scripts/web.sh



{ 注意:如果安装jenkins后没有修改配置为root,脚本执行如果有权限问题,解决方法

   (1)修改jenkins登录shell为修改jenkins登录shell为/bin/bash

       vim /etc/passwd

       修改:

       jenkins:x:990:985:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

       保存退出

   (2)修改jenkins服务器的本地profile

       vim /root/.bash_profile

       添加:

       export PS1='[\u@\h \W]\$'

       保存退出

       source /root/.bash_profile

   (3)赋予jenkins用户sudo权限

       isudo

       添加:

       jenkins ALL=(ALL)       NOPASSWD: ALL

       保存退出

}  



7.jenkins关联gitlab,实现自动构建上传代码

(1)jenkins:

       web项目-- configure -- build triggers -- 勾选最长选项 -- 点击高级advanced

       -- 选择Filter branches by name --在include填写master -- 点击generate生成令牌 -- 复制令牌和触发器顶部url路径

       -- save保存

 

   bc548c0fbb8ceccef7b00335e428a18c        用自己的令牌和URL路径

  http://192.168.8.20:8081/project/web


(2)gitlab:

       web项目 -- settings -- integrations -- 把复制的令牌和url粘贴过来 -- add webhook

     

(3)更新push代码,测试自动构建上传。

       在gitlab上,修改代码或添加新的文件,依次执行:git add ; git commit  ; git push

       例如:

           git add .

           git commit -m "modify index.html"

           git push -u origin master

         

(4)登录nginx网站,查看更新内容。


相关文章
字节图解算法小册爆火出圈!GitHub标星43k,内容竟比小说还有趣
对于一个程序来说,数据结构和算法有多重要呢? 也正是因为数据结构与算法的重要,所以我们才一定要把这个地基打牢。今天我给大家准备了一份像小说一样有趣的算法入门书,用生动的图片一点一点帮助理解算法。
|
6月前
|
人工智能 数据可视化 C++
Math24o:SuperCLUE开源的高中奥数推理测评基准,85.71分屠榜
Math24o是首个针对高中奥林匹克数学竞赛的中文大模型测评基准,采用2024年预赛真题实现自动化评估,为模型数学推理能力提供客观衡量标准。
184 48
Math24o:SuperCLUE开源的高中奥数推理测评基准,85.71分屠榜
【操作系统】实验九 写一个设备驱动程序
【操作系统】实验九 写一个设备驱动程序
328 1
|
Linux 数据安全/隐私保护 Python
Linux配置网卡、创建用户赋予sudo权限、互信息等基本操作
以上是Linux配置网卡、创建用户赋予sudo权限、互信息的基本操作。这些步骤可以用于在Linux系统上进行网络配置、用户管理和信息分析。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
322 4
|
机器学习/深度学习 人工智能 PyTorch
【Deepin 20深度探索】一键解锁Linux深度学习潜能:从零开始安装Pytorch,驾驭AI未来从Deepin出发!
【8月更文挑战第2天】随着人工智能的迅猛发展,深度学习框架Pytorch已成为科研与工业界的必备工具。Deepin 20作为优秀的国产Linux发行版,凭借其流畅的用户体验和丰富的软件生态,为深度学习爱好者提供理想开发平台。本文引导您在Deepin 20上安装Pytorch,享受Linux下的深度学习之旅。
270 12
|
弹性计算 JSON 监控
EventBridge:构建SaaS应用集成的桥梁,让数据流动成为一场精彩的交响乐!
【8月更文挑战第8天】在云计算时代,SaaS应用因灵活性和可扩展性备受青睐,但多应用环境下的数据共享成为挑战。Amazon EventBridge作为一款无服务器事件总线服务,支持应用程序、SaaS应用及AWS服务间的事件驱动交互。它简化了事件产生、路由与处理流程,支持自定义与内置事件,实现应用间松耦合集成,提升系统可维护性和扩展性。通过定义业务相关事件、创建事件模式及规则,可轻松配置目标动作(如Lambda函数),实现如新订单触发CRM更新等场景。EventBridge提供高效灵活的集成方式,有助于提高应用响应性和可扩展性,成为云架构师不可或缺的技能之一。
189 7
|
机器学习/深度学习 数据采集 存储
使用Python实现深度学习模型:智能医疗影像分析
使用Python实现深度学习模型:智能医疗影像分析
343 0
|
自然语言处理 开发者 Python
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
|
机器学习/深度学习 人工智能 Java
【Sping Boot与机器学习融合:构建赋能AI的微服务应用实战】
【Sping Boot与机器学习融合:构建赋能AI的微服务应用实战】
200 1
|
小程序 存储 UED
如何实现一次搭建 多平台适配的小程序
【6月更文挑战第3天】如何实现一次搭建 多平台适配的小程序