Jenkins学习笔记3

2023-09-20 17:44:59

git+github+jenkins:

架构图:

说明:jenkins知道github有更新了,就pull进行构建build,编译、自动化测试。然后部署到应用服务器。

maven java的项目构建工具。

在开发者电脑上创建空密码密钥对。 

 

[root@git-developer ~]# git clone git@github.com:changchunhua2017/jenkins.git
Cloning into 'jenkins'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
[root@git-developer ~]#
[root@git-developer ~]#
[root@git-developer ~]#
[root@git-developer ~]# ll
total 4
-rw-------. 1 root root 1518 Sep  2 02:39 anaconda-ks.cfg
drwxr-xr-x  3 root root   35 Sep 20 15:27 jenkins
[root@git-developer jenkins]# git config --global user.name "changchunhua"
[root@git-developer jenkins]# git config --global user.email "chang_chunhua@qq.com"
[root@git-developer jenkins]# git config --global color.ui true

[root@git-developer jenkins]# echo 11111 > 1.php
[root@git-developer jenkins]# ll
total 8
-rw-r--r-- 1 root root  6 Sep 20 15:50 1.php
-rw-r--r-- 1 root root 35 Sep 20 15:27 README.md

[root@git-developer jenkins]# git add *
[root@git-developer jenkins]# git commit -m "Added 1.php"
[main cdc0119] Added 1.php
 1 file changed, 1 insertion(+)
 create mode 100644 1.php

可以看到1.php文件上传成功:

那开发者这块是没有问题的。

Nginx服务器的准备:

在Nginx服务器上安装nginx,并启动nginx。

[root@nginx ~]# yum install epel-release
[root@nginx ~]# yum install nginx -y
[root@nginx ~]# systemctl start nginx
[root@nginx ~]# systemctl enable nginx

jenkins安装插件:

jenkins图形安装publish over ssh插件:

可以看到Publish Over SSH插件已经安装完成。

确认Git plugin插件已经安装完成。

配置Jenkins服务器通过Publish  over ssh免密连接Nginx:

1)第1步: 在jenkins服务器上生成空密码密钥对:

[root@localhost soft]# ssh-keygen

2)查看并复制私钥:

[root@localhost .ssh]# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAqbt2nAw4gB3/3HGa06WZGfZZkccGXdp2dCZX3Vm6MH0zPaOA
egxf+VplgtIMYuXScy1d/4De02p5UTBBRP2Xyw+sXcfneikrffY7JGHY5stmYCR0
V9fNLnWZaoUpBn3DWXH4Cz4QeJCmXMU5hQ0guL3AX4IBQOTOVEiMMVOO8/Ae/BI8
qO7jZAINalrfxTZ+DpOvmOwbOAn0Zj7mt4cOBsX67mmHm2Ci1/5eeEZzJEcCR/xp
bBSnh5XXIMcfHD9d0SmWyyrgEm4JWngEFQVzauDvYWJfNqFcHuLp4nx6Jm+5QBZj
GqEF9TCevUzs5n2OHsGu4cZoRQaFT8zazpgpGwIDAQABAoIBAH+/dqAwmn3jFmYm
oy9U3gyqW/PaZjJRcQIusccJ95bzRJPJ8bLqiXm1zd1OlsAA1gqWRL8/kXZyFulC
dn2kmJDfNQ5InTJWtkNSBmV1t7jNsjn+dgp/hBDJtjR0ENKv6U3y94wOpHr59Byy
3H4FyXECcD3yLVtYWusYx1uA1oFGKVdmYkA+7WS9tQjjR6Itvt1hsfzydGQdyL00
9NxXA6A4R1BreMDjAToPD1AbmmY+jDYIujZNlZl2+mUBWFCCsJGPMs5OPvi2T9ir
9OSPbC/8v8iZo7l2EbHGvFCtyUpKypuy57zI521KT7wxMDjRQ2KFrY2lqu6ZwXi+
ANRC/VECgYEA1CKZ/LnPie0X8Sg0HrvHDrUsa38ODhpeXYzscSnbawXHkT/eF0e7
rTbUF2wEfmKZGK0zb/+AK1bt9KxufWLKJDWBFkjf5e1IqKfc34UzoEHK2v6KEfLV
3S07QFoYaFF2onu4HnAfPxnn8JIYHwdkVVRPSgBq/SxND8hPRMZ9xpUCgYEAzNRC
q59bZjEn3Jhi2eD6QtBCzfwN0AxAeXKlP8SvR79iAA1XJiZjoK9lAABrdncAU6SU
LkX6Z/RDLef9gos9xReV1kU7k7tY4UdvMk1YUEh7C9txHQNjeQHoXByq5Ftpz2m2
aDVgZ3wfRP8uI1xIdbYwqwKzkm9iAgTXWpWftO8CgYEAwp7UI7bdHy80Tf2Sg7fH
EklJbX3tiSbL+Iv3yIKcWX298BZmTXl0R6ALyUlCfik7SBZvIIuKLTjdqyIfZE2k
IsArpCRLtgiSJpmK3E66ZIa3816fkYP2jaqXt5xw1BQZAUz8SICZSi0cS+vc0WrY
tChbbgsgHRHtyVL+1pw8fFkCgYEAnGd8XUZ66UahtI1b9hkXoAsc5+MOvQ2N8e68
Bjxux295KqcFI+lua9ViXyTy6eumgTgLumXO9rAK2DPsXVFromMHFC2bd4w4KxV7
8EIlLHCcHIq9DbV3sH/naOavC15OJoYHNf2EFqEt02azWWbvIYs0EHEoo6mPghEm
TFIyOFsCgYBwaSZ5bGqIQ+L+ZgJq1d6FkGzKvS8lrWQGNVds4Ne5iNrMUoeRe6O7
hwsqypAdLhgbF8SgrXxYMOhHBrSMdnaqaAJl5V0H5ydC3rkX/UsGa1pCWsendpVq
TZzTR0pdmNiNYTslQW9ILm9ZkWpaQmwGFFGpTmRqPuYUZHU+WByiGw==
-----END RSA PRIVATE KEY-----

这段私钥,只是代表这台服务器的root账户私人免密,并不能代表jenkins软件免密。

3)在Jenkins中添加私钥:

安装了插件,才有这个Publish over SSH。

还需要添加要连的服务器: 

然后点击保存。

还可以做一个测试。

这样,就是配置jenkins软件的私钥。

私钥是解密,公钥是加密。

4)在jenkins服务器上配置对nginx服务器的免密登录。

[root@localhost .ssh]# ssh-copy-id -i 192.168.17.121
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.17.121 (192.168.17.121)' can't be established.
ECDSA key fingerprint is SHA256:4dogA08L5gdfaA69BGekE13kzSuIP2vcRp9rsqYnpn0.
ECDSA key fingerprint is MD5:93:34:b9:61:03:cd:00:92:b9:91:3d:b6:6c:7a:84:95.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.17.121's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.17.121'"
and check to make sure that only the key(s) you wanted were added.

把Jenkins的服务器的公钥给Github:

直接将id_rsa.pub内容配置到Github中。

jenkins连接Github,私钥连接公钥。

为Jenkins服务器添加凭据:

凭据是Jenkins给自己的构建项目授权用的。

我们本项目案例里jenkins是通过ssh免密去找github的项目仓库clone或pull项目代码。

在前面的配置里已经把jenkins服务器的公钥添加到了github仓库上, 在jenkins服务器上root用户使用git clone 项目地址都可以成功。

但是jenkins服务本身并不允许使用自己的私钥去访问github的公钥, 给个凭据, 让它能做就解决问题了

总结: ==凭据是一种和第三方程序(如github,gitlab等)通讯的权限授权。本案例的凭据就是允许使用ssh免密==

你可以把这个凭据在jenkins里授予给任何需要ssh免密通讯的构建项目。

在Jenkins里添加凭据:

之前私钥是连接Nginx的私钥,这个私钥配置是连接前面的Github的私钥。

小结:

更多推荐

MySQL学习系列(2)-每天学习10个知识

目录1.INNERJOIN和ON子句2.死锁3.SELECT*和SELECTcolumn1,column24.数据库的视图5.MySQL的触发器类型6.MySQL表的备份和恢复7.MySQL存储引擎8.索引优化9.MySQL中的子查询10.使用连接(JOIN)从多个表中检索数据👍点赞,你的认可是我创作的动力!⭐️收藏

VuePress网站如何使用axios请求第三方接口

前言VuePress是一个纯静态网站生成器,也就是它是无后端,纯前端的,那想要在VuePress中,发送ajax请求,请求一些第三方接口,有时想要达到自己一些目的在VuePress中,使用axios请求第三方接口,需要先安装axios,然后引入,最后使用本文包括VuePress中安装和使用axios,直接使用与挂载在根

19 Python的math模块

概述在上一节,我们介绍了Python的sys模块,包括:sys模块中一些常用的属性和函数。在这一节,我们将介绍Python的math模块。math模块提供了许多数学函数和常量,可以用于进行各种数学运算和常数表示。math模块中的常量和函数主要分为以下几类:常量:包括math.pi、math.e等,用于表示圆周率π和自然

php函数usort使用方法

在PHP中,usort()函数用于对数组进行排序,它允许你使用自定义的比较函数来确定元素的顺序。以下是usort()函数的使用方法:usort(array&$array,callable$cmp_function):bool参数说明:$array:要排序的数组,是传入函数的引用。$cmp_function:自定义的比较

BiLSTM(双向LSTM)实现股票时间序列预测(TensorFlow2版)

本专栏旨在通过实战案例帮助深度学习初学者通过实战案例快速掌握深度学习的核心概念和技术,这个专栏将覆盖以下关键主题:深度学习基础:介绍深度学习的基本原理以及数学概念,你将了解到神经网络的工作原理、激活函数、优化算法等基本概念。常见算法:例如卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)。数据预处理

SQL server中字段自增:IDENTITY、序列Sequence

SQLserver中字段自增:IDENTITY、序列Sequence1.列字段自增`IDENTITY在SQLServer中,IDENTITY(1,1)是用于定义一个自增长列的属性。它的含义如下:IDENTITY:表示该列是一个自增长列。(1,1):表示自增长列的起始值为1,每次递增1。当你在创建表时使用IDENTITY

Sqlserver 监控使用磁盘空间情况

最近遇到一个小问题:为了保存以往的一些数据,间了大量临时表,导致SQLserver数据增长过快,不得不想个办法监控磁盘空间使用情况。网上一般有几种办法:一是使用dm_os_volume_stats函数,缺点是无法获取非数据库所在的磁盘空间使用情况。二是使用Execmaster.dbo.xp_fixeddrives,缺点

算法基础:图

图论图论〔GraphTheory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。如下就是一种逻辑上的图结构:图是一种最复杂的数据结构,前面讲的数据结构都可以看成是图的特

oracle 12c相对oralce 11g的新特性(3)|oracle 12c的自动化管理特性:自动备份、自动恢复、自动维护的功能使用

一、前言:前面几期讲解了oracle12c多租户的使用、In-Memory列存储来提高查询性能以及数据库的克隆、全局数据字典和共享数据库资源的使用今天我们讲讲oracle12c的另外的一个自动化管理功能新特性:自动备份、自动恢复、自动维护的功能二、自动备份、自动恢复、自动维护概要通过使用这些自动化功能,Oracle12

使用 FHE 实现加密大语言模型

近来,大语言模型(LLM)已被证明是提高编程、内容生成、文本分析、网络搜索及远程学习等诸多领域生产力的可靠工具。大语言模型对用户隐私的影响尽管LLM很有吸引力,但如何保护好输入给这些模型的用户查询中的隐私这一问题仍然存在。一方面,我们想充分利用LLM的力量,但另一方面,存在向LLM服务提供商泄露敏感信息的风险。在某些领

PCIE研究-1

PCI-Express(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准,PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCI

热文推荐