Jenkins学习笔记3

news2024/11/17 11:31:43

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的私钥。

小结:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统架构设计师-数据库系统(3)

目录 一、数据控制 1、安全性 2、完整性 3、并发控制 4、故障恢复 二、数据库设计概述 1、数据库设计关注的问题 2、数据库性能优化 3、规范化与反规范化 一、数据控制 1、安全性 2、完整性 (1)实体完整性约束:规定基本关系的主属性不能取空…

论文写作格式经验

论文写作经验: 交叉引用 在公式后输入#(1),回车选中(1),选择插入->添加书签,自定义书签名交叉引用->引用类型:书签一个公式对应一个书签 这样就可以只显示公式编号了 word转p…

数据的力量,环保的未来!气象信息采集系统解决方案助您实现环境优化

小伙伴们,今天给大家讲一个真实的案例,看看如何用气象信息采集系统提高环保监测能力。 随着环境污染问题越来越严重,许多城市都开始建设空气质量监测站,对各类污染数据进行采集。但是传统的监测站设备复杂,采集范围有限,这就需要用到工业物联网的解决方案。 我们公司参与建设了…

R语言-关于颜色

目录 颜色 示例 R 颜色板 参考: 颜色 什么场景会用到颜色?比如在绘图过程中,为了让图更好看,有的时候,需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中,可以通过颜色下标…

面向面试知识-Redis

面向面试知识-Redis 什么是Redis 运行于内存的基于key-value的非关系型数据库。 一款开源的内存数据结构存储,用作数据库、缓存、消息代理等。(可以基于Redis实现分布式锁、以及消息队列) 发布订阅?? 对数据类型的操…

数据库数据恢复-SQL SERVER数据库文件损坏的故障表现数据恢复方案

SQL SERVER数据库故障类型: SQL SERVER数据库MDF(NDF)或LDF损坏。 SQL SERVER数据库故障原因: 1、数据库正在操作过程中,机器突然断电。 2、人为误操作。 SQL SERVER数据库MDF(NDF)或LDF损坏的…

Qt/C++音视频开发55-加密保存到文件并解密播放

一、前言 为了保证视频文件的安全性,有时候需要对保存的视频文件加密,然后播放的时候解密出来再播放,只有加密解密的秘钥一致时才能正常播放,用ffmpeg做视频文件的加密保存和解密播放比较简单,基于ffmpeg强大的字典参…

2023最全软件测试面试八股文(答案+文档+视频讲解)

Part1 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自…

【C语言】指针的进阶(三)—— 模拟实现qsort函数以及指针和数组的笔试题解析

目录 1、模拟实现qsort函数 1.1、qsort函数的回顾 1.2、模拟实现qsort函数 2、指针和数组笔试题解析 2.1、一维数组 2.2、字符数组 1、模拟实现qsort函数 1.1、qsort函数的回顾 要模拟实现qsort函数,就要了解清楚qsort函数的参数以及使用方式。 我们先回顾一…

PyTorch实战:实现Cifar10彩色图片分类

目录 前言 一、Cifar10数据集 class torch.utils.data.Dataset torch.utils.data.DataLoader 二、定义神经网络 普通神经网络: 定义损失函数和优化器 训练网络-Net CPU训练 模型准确率 ​编辑 GPU训练 训练网络-LeNet 模型准确率 点关注,防走丢&#x…

9月15日、9月18日上课内容 Zookeeper集群 + Kafka集群

Zookeeper 本章结构 Zookeeper 概述 Zookeeper 定义 *(了解) Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper 工作机制 *****(非常重要,需要掌握) Zookeeper从设计模式…

用低代码开发工具高效构建企业门户

企业信息门户EIP是指将各种应用系统、数据资源和互联网资源统一集中,根据每个用户使用特点和角色的不同,形成个性化的应用界面,并通过对事件和消息的处理、传输把用户有机地联系在一起。 企业随着业务的发展,运作的复杂度也在不断…

第三十二章 Objects

[toc] 第三十二章 Objects Objects 对象类简介 IRIS 通过以下对象类提供对象技术: %Library.RegisteredObject、 %Library.Persistent %Library.SerialObject。 下图展示了这些类之间的继承关系,以及它们的一些参数和方法。 %Library 包的类名称可以…

Vite + Vue3 使用cdn引入依赖 vite cdn vue3 cdn vite引入cdn

Vite Vue3 使用cdn引入依赖 vite cdn vue3 cdn vite引入cdn 1、安装插件2、在 vite.config.js 引用3、main.js4、打包测试 1、安装插件 npm install element-plus --save2、在 vite.config.js 引用 import { defineConfig } from vite import vue from vitejs/plugin-vue// …

用开源代码构建机器人需要考虑的问题

导读或许你正在考虑(或正在进行)将机器人使用开源软件推向市场。这个机器人是基于 linux 构建的。也许你正在使用机器人操作系统(ROS)或任务导向操作套件(MOOS),或者是另外一个可以帮助你简化开…

007 数据结构_堆——“C”

前言 本文将会向您介绍关于堆Heap的实现 具体步骤 tips:本文具体步骤的顺序并不是源代码的顺序 typedef int HPDataType; typedef struct Heap {HPDataType* _a;int _size;int _capacity; }Heap;初始化 void HeapCreate(Heap* hp, HPDataType* a, int n) {hp-&…

AT32F407裸机工程创建

1、建立工程文件夹 2、找到AT提供DEMO例程,我们需要复制相关的内核文件出来,到我们创建的这个文件夹 1)将库文件拿过来 2)内核文件 3)启动文件 我把F407相关的内核文件都复制过来,然后具体看自己使用哪个型号,工程自己添加对应的文…

避雷!这9本期刊已被剔除!9月SCI/SSCI目录已更新(附2023年WOS历次更新全目录)

2023年9月20日,科睿唯安更新了Web of Science核心期刊目录。 此次更新后SCIE期刊目录共包含9490本期刊,SSCI期刊目录共包含3552本期刊。此次SCIE & SSCI期刊目录更新,与上次更新(2023年8月)相比,共有9本…

共育电商人才,引领行业发展丨知了汇智与协作时代达成战略合作

随着新一轮科技革命和产业革命的深入发展,数字经济正在成为重塑全球经济结构、改变全球竞争格局的关键力量,数字经济与实体经济的深度融合,也将是未来经济发展的重要动力。数字经济的发展正在催生电子商务模式不断创新,新业态下企…

安防监控系统/视频云存储/视频监控平台EasyCVR无法级联上级平台,该如何解决?

安防视频监控系统EasyCVR平台能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也…