Excel不相邻列如何打印在一起-英雄云拓展知识分享
127
2023-11-07
【摘要】 本书摘自《Python+3自动化软件发布系统》一书中第3章,第4节,由陈刚、王洪军编著。
3.4 使用Nginx 作为软件仓库
在我们这个自动化发布系统的设计中,当使用Jenkins 生成软件包之后,会放在 一个软件版本仓库里存起来,而不会如网上很多文档演示的那样直接启动服务器。
网上文档演示的直接在 Jenkins 里远程启动服务器,确实是最快速的实现。作 为快速开发的小型公司来说,是无可厚非的,但它需要操作Jenkins 的人有足够的责 任心,且缺少其他同事的再次确认。但如果公司规模扩张,要将软件发布纳入IT 工 作流程,同时要对接第三方平台(如 jira),或是向第三方提供数据(如监控报警),那 么直接在Jenkins 里发布,就显得比较仓促了。
因此,在我们的系统里,CI 是 一 部分,CD 是另一部分,且研发、运维、测试、形成 产品都能知道开发和部署的进度。这就是我们设计这个平台的初衷。
我们的软件仓库,就直接用Nginx 来实现(当下一阶段生成 Docker 镜像时,仓 库的功能就改为 Harbor 来实现)。这个 Nginx 里存放了公司所有项目的所有版本 的历史软件包,所以最好配置一个比较大的存储空间,并且,这个 Nginx 提供了浏览 软件,可以直接下载软件包,做一些文件方面的验证。
将Jenkins 中编译生成的软件包传递到 Nginx 服务器上,大致要经过以下几个 步骤:首先打通Jenkins 服务器和 Nginx 服务器之间的 ssh 免密码登录,在服务器上 安装好Nginx, 定义好服务根目录,并设置目录浏览权限。Jenkins 中安装对应的传 送软件的插件,将 ssh 免密码登录生成的 rsa 私钥设置在 Jenkins 系统里。然后,完 成 Jenkins 的 Pipeline 最后部分的编写,测试通过即可。下面,我们就来一步一步地 实现吧。
3.4.1 Jenkins 和 Nginx 服务器之间免密码登录
假定Jenkins 服务器的 IP 为192.168.1.112,Nginx 服务器的 IP 为192.168.
1.111。
① 登录Jenkins 服务器,在 root 用户目录下,执行如下命令,生成 rsa 算法的公 钥和私钥。
ssh-keygen -t rsa
在需要输入的地方,全部直接回车。输出类似如下:
Generating public/private rsa key pair.
Enter file in which to save the key(/root/.ssh/id_rsa):
Enter passphrase(empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /var/root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fFrRr2xbGo7cY9e7oi5tdkoj0gsKgI+IgIldkqA93Z4 root@55f51468e37e The key's randomart image is:
+---[RSA 2048]---+
1.o o.
. = O
+o +·O
B.
=0
+
E S o
+
.0 =
..000+B..
oo B=0o.00
+----[SHA256]-----+
② 在 Jenkins 上,通过远程命令,在Nginx 服务器上建立相关目录。命令如下
ssh root@ 192.168.1.111"mkdir.ssh;chmod 0700.ssh"
上面这个命令,需要输入Nginx 上的 root 的服务。
③ 将 Jenkins 上的公钥拷贝到Nginx 上 root 的指定目录。命令如下
scp~/.ssh/id_rsa.pubroot@ 192.168.1.111:.ssh/id_rsa.pub
上面这个命令,也需要输入 Nginx 上的 root 的服务。
④ 登录 Nginx 服务器,生成一个 authorized_keys, 并设置600权限。
touch /root/.ssh/authorized_keys
chmod 600~/.ssh/authorized_keys
⑤ 将从Jenkins 拷贝过来的公钥文件的内容追加到 autorized_keys 文件中。
cat /root/.ssh/id_rsa.pub>>/root/.ssh/authorized_keys
⑥ 至此,我们完成了Jenkins 到 Nginx 服务器的免密码登录。如果我们在 Jen- kins 上执行如下命令,就会直接登录到Nginx 服务器上了。
ssh root@192.168.1.111
如果读者不是很明白其中的原理,建议先将这几步多操作几次,并死记下来。然 后,再通过网上其他深度文档来理解这里的机制。因为网络发展到今天,安全已成为 一个很重要的话题,而在IT 安全技术中,基于非对称加密的 RSA 算法,绝对居于一 个中心主宰的地位。 HTTPS/SSL 、 电子签名、SSH 认证很多领域,都是以非对称的 加密算法为基础的。RSA 算法本身很复杂,但其基本原理(超大互质数乘积分解)、 工程化实现(公钥私钥)却需要我们熟练掌握。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~