Jenkins 使用

Jenkins 使用


文章目录

  • Jenkins 使用
  • 一、jenkins 任务执行
  • 二、 Jenkins 连接gitee
  • 三、Jenkins 部署静态网站


在这里插入图片描述


一、jenkins 任务执行

jenkins 创建 job
job的名字最好是有意义的

restart_web_backend
restart_web_mysql

在这里插入图片描述

[root@jenkins ~]# ls /var/lib/jenkins/
config.xml                                      nodeMonitors.xml
hudson.model.UpdateCenter.xml                   nodes
hudson.plugins.git.GitTool.xml                  plugins
identity.key.enc                                queue.xml.bak
jenkins.install.InstallUtil.lastExecVersion     secret.key
jenkins.install.UpgradeWizard.state             secret.key.not-so-secret
jenkins.model.JenkinsLocationConfiguration.xml  secrets
jenkins.telemetry.Correlator.xml                updates
jobs                                            userContent
logs                                            users
[root@jenkins ~]# ls /var/lib/jenkins/jobs/
guan_jenkins_job
[root@jenkins ~]# ls /var/lib/jenkins/jobs/guan_jenkins_job/
builds  config.xml

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@jenkins ~]# ls  /var/lib/jenkins/workspace/guan_jenkins_job
guan12319.txt

在这里插入图片描述
清理工作空间之后,可以发现workspace目录下没有内容了

[root@jenkins ~]# ls  /var/lib/jenkins/workspace/

二、 Jenkins 连接gitee

ssh协议连接方式

获取仓库地址

git@gitee.com:sound-of-birds-chirpingg/test_git.git

目的:用户在jenkins服务器上去Gitee(码云)下载代码,然后把代码下载到jenkins服务器上

在这里插入图片描述
常见报错
jenkins 没有安装git

yum install -y git

没有做免密
在这里插入图片描述
用ssh-keygen 生成公私要,然后上传公钥到gitee上,进行免密登录

[root@jenkins ~]# cat  ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC6ATb8WL+zTOhYNkwJKr+xfaZ5QbfLBxyaRYtcO977T6ySDv1MDmBXC0ELBOE0x/Pyac3u5IB+NjLsKM63iYzSXrqk0TzjgrCXM85ZdnJ3mqCwaOa0xt2xFYeu0Pxz5o6CO+bffgfoInEIBHn44UaiJLM1qUdyoIxm8vKEaWF5ZZeDvyl8s952du0NgAQeRr70aISqRFTfZM5rYtkJeQ1r/3O0fuv5VbbklJprOid+viXwPIATLnste4TMFeN0dWW752WSfYpxR/XbPWLeZ0rTu3frIhLCsTOpPZyoLvRwJ7SpqLyPpLxC3mTYysPe66/VmSB6AkOebz9bDHWdsCiyHF6yV8Rl6MPHiilYW+nzWV48Mj5mVO7JMA5euFNMsgNqF908HS9czjD89nOjWjeSjlMn/+TweGulVHopP6n0puC+g2PFPLCfULm9J+JpRJNRCFXoEZ3MW1B3okHZ/Kq9zJNLQs7TjrHhCE8zR2wWULCybLrwqbsHXGRarW6QJvE= root@jenkins

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

[root@jenkins ~]# cat  ~/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
  • 在jenkins服务器上配置好git,生成公私钥发给gitlab
  • 在jenkins服务器里做好配置,和凭证,写入私钥

Https 协议连接方式

1.获取仓库地址

https://gitee.com/sound-of-birds-chirpingg/test_git.git

在这里插入图片描述
2.安装gitee插件,并在安装完成之后重启jenkins服务
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
添加凭据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时,gitee仓库更新内容,而jenkins还是之前的内容,没有同步
在这里插入图片描述
这个时候,只需要在jenkins 服务器上在构建一次,就完成了代码仓库的同步更新
在这里插入图片描述

[root@jenkins guan_jenkins_job]# ls
git.txt  guan12319.txt  guan.txt  hello.txt
[root@jenkins guan_jenkins_job]# ls
git.txt  guan12319.txt  guan.txt  hello.txt  README.md
[root@jenkins guan_jenkins_job]# 

三、Jenkins 部署静态网站

自动化部署静态站点
1.手动或自动部署一个nginx集群
2.开发提交代码到代码托管平台,gitee
3.运维开发shell脚本,交给jenkins去执行这个脚本,jenkins再去获取代码,推送到nginx集群下
在这里插入图片描述
实验准备:使用了2台服务器,一台是运行jenkins服务,另一台运行web服务

1.在web服务器部署一个nginx web 集群

yum install -y nginx

2.修改nginx的配置文件

[root@web ~]# vim /www/server/nginx/conf/nginx.confserver{listen 888; //修改端口server_name phpmyadmin;index index.html index.htm index.php;root  /www/server/phpmyadmin;location ~ /tmp/ {return 403;}

创建页面

[root@web ~]# cd /www/server/phpmyadmin
[root@web phpmyadmin]# ls
[root@web phpmyadmin]# echo "hello guan12319" > index.html
[root@web phpmyadmin]# ls
index.html

在浏览器访问页面
在这里插入图片描述

[root@web phpmyadmin]# cat index.html 
hello guan12319 ----> 你好,世界

在网页文件输入中乱码
在这里插入图片描述
解决办法,在网页文件加入如下内容

[root@web phpmyadmin]# cat index.html 
<meta charset=utf8>
hello guan12319 ---- 你好,世界

在这里插入图片描述
模拟开发推送代码带gitee或者gitlab或者GitHub

  • 开发将代码提交到仓库
  • 运维通过jenkins从gitee或gitlab拉取代码,然后在jenkins通过使用shell部署到nginx服务器上。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 在jenkins上创建心的job,然后填入内容,用于执行一个脚本
sh -x /scripts/deploy_nginx.sh
  • 在jenkins服务器上部署好脚本
[root@jenkins ~]# mkdir /scripts/
[root@jenkins ~]# touch /scripts/deploy_nginx.sh
[root@jenkins ~]# cat   /scripts/deploy_nginx.sh
#1,进入代码目录,打包传输
DATE=$(date +%Y-%m-%d-%H-%M-%S)
#web_server="154.9.228.143 154.9.228.144 154.9.228.145"
web_server="154.9.228.143"# 定义部署的功能函数
# $WORKSPACE 是 jenkins 特有的变量,取得当前job的工作绝对路径
get_code(){cd $WORKSPACE && \ tar czf /opt/web-${DATE}.tar.gz ./*
}# 2.代码发送给web集群组
scp_web_server(){ 
for hosts in $web_server 
do# jenkins执行如下命令,将自己本地代码压缩文件,scp发送给nginx服务器scp /opt/web-${DATE}.tar.gz root@$hosts:/opt/ # jenkins服务器,利用ssh命令,远程执行命令ssh root@$hosts "mkdir -p /nginx_web_html/web-${DATE} && \tar -zxf /opt/web-${DATE}.tar.gz -C /nginx_web_html/web-${DATE} rm -rf /nginx_web_html/web && \ ln -s /nginx_web_html/web-${DATE} /nginx_web_html/web"done
}
# nginx 服务器上的网页根目录是: /nginx_web_html/web# 3.函数执行
deploy(){get_codescp_web_server
}	# 4.执行入口
deploy#给脚本赋予执行权限
[root@jenkins ~]# chmod 777  /scripts/deploy_nginx.sh

脚本直接执行,如果权限不够,可能是因为jenkins这个服务是jenkins用户运行的,像要操作目录权限不够,所以需要修改jenkins的用户为root
在这里插入图片描述

[root@jenkins ~]# grep root /etc/sysconfig/jenkins 
JENKINS_USER="root"

在这里插入图片描述

[root@jenkins opt]# ssh-copy-id root@154.9.228.143

构建成功之后即可,访问网页了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/57277.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小研究 - MySQL 分区技术在海量系统日志中的应用

随着信息技术的飞速发展&#xff0c;系统的业务功能不断扩大&#xff0c;产生的日志与日俱增&#xff0c;导致应用软件的运行速度越来越慢&#xff0c;不能很好地满足用户对软件性能的需求。基于此&#xff0c;重点研究了 MySQL 分区技术在大数据量软件日志中的应用&#xff0c…

MySQL的常用函数大全

一、字符串函数 常用函数&#xff1a; 函数功能CONCAT(s1, s2, …, sn)字符串拼接&#xff0c;将s1, s2, …, sn拼接成一个字符串LOWER(str)将字符串全部转为小写UPPER(str)将字符串全部转为大写LPAD(str, n, pad)左填充&#xff0c;用字符串pad对str的左边进行填充&#xff0…

Transformer学习笔记

Transformer学习笔记 前言前提条件相关介绍Transformer总体架构编码器&#xff08;Encoder&#xff09;位置编码&#xff08;Positional Encoding&#xff09;get_attn_pad_mask函数&#xff08;Padding Mask&#xff09;EncoderLayerMultiHeadAttentionScaledDotProductAttent…

K8S系列文章之 Kind 部署K8S的 服务发布

安装kind 下载 https://github.com/kubernetes-sigs/kind/releases/download/0.17.0/kind-linux-amd64 执行以下命令&#xff1a; mv kind-linux-amd64 /usr/local/bin/kind chmod 777 /usr/local/bin/kind 之前需要先在本地主机安装好docker yum -y install yum-utils d…

【ArcGIS Pro二次开发】(58):数据的本地化存储

在做村规工具的过程中&#xff0c;需要设置一些参数&#xff0c;比如说导图的DPI&#xff0c;需要导出的图名等等。 每次导图前都需要设置参数&#xff0c;虽然有默认值&#xff0c;但还是需要不时的修改。 在使用的过程中&#xff0c;可能会有一些常用的参数&#xff0c;希望…

将整数,结构体,结构体数组,链表写到文件

在之前的学习中&#xff0c;忘文件中写的内容都是字符串或字符&#xff0c;本节学习如何写入其他各种类型的数据。 回看write和read函数的形式&#xff1a; ssize_t write(int fd, const void *buf, size_t count); ssize_t read(int fd, void *buf, size_t count); 其中&a…

decimal类型在MySQL中的正确使用 (长度和小数点)

1. MySQL(decimal) 对应 Java(BigDecimal) 2. decimal(16,2) MySQL中类型的设置, 长度16, 保留2位小数 3. 如果长度小于14, 则会出现没小数位的情况

html 计算器界面

其他链接&#xff1a; https://www.freecodecamp.org/news/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98/ https://codepen.io/pen/tour/welcome/start 下面展示一些 内联代码片。 <!DOCTYPE html> <html lang"en">…

Docker 快速安装 MinIO

概述 MinIO 是一款基于Go语言的高性能对象存储服务&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 拉取docker镜像 docker pull minio/minio创建宿主机数据目录&#xff08;共享数据卷&#xff09; 此…

Kotlin基础(十一):反射和注解

前言 本文主要讲解kotlin反射和注解。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 kotlin反射 1.1.1 kotlin反射概念和常见使用场景 在Kotlin中&#xff0c;反射是一种能够在运行时动态地获取、检查和操作类、属性、方法等结构的能力。Kotlin为反射提供了一…

工业以太网交换机-SCALANCE X200 环网组态

1.概述 SCALANCE X200 系列交换机自从2004年8月推入市场&#xff0c;当时交换机只能接入环网&#xff0c;不能做环网管理器。在各个工业现场得到了广泛的应用。2007年5月发布了X200系列新的硬件版本平台&#xff0c;普通交换机可以用HSR&#xff08;高速冗余&#xff09;方法做…

p7付费课程笔记6:CMS GC

目录 前言 工作步骤 缺点 问题 前言 上一章节我们讲了串/并行GC&#xff0c;这一章节说下CMS GC。看前思考一个问题&#xff0c;并行GC与CMS GC的区别在哪里。 什么是CMS收集器 CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于…