哪个厂家的广州网站建设,医疗在线网站建设,织梦iis7搭建网站,购物网站建设规划书范文gitgithubjenkins#xff1a;
架构图#xff1a; 说明#xff1a;jenkins知道github有更新了#xff0c;就pull进行构建build#xff0c;编译、自动化测试。然后部署到应用服务器。
maven java的项目构建工具。 在开发者电脑上创建空密码密钥对。 [rootgit-developer ~…
gitgithubjenkins
架构图 说明jenkins知道github有更新了就pull进行构建build编译、自动化测试。然后部署到应用服务器。
maven java的项目构建工具。 在开发者电脑上创建空密码密钥对。 [rootgit-developer ~]# git clone gitgithub.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.
[rootgit-developer ~]#
[rootgit-developer ~]#
[rootgit-developer ~]#
[rootgit-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[rootgit-developer jenkins]# git config --global user.name changchunhua
[rootgit-developer jenkins]# git config --global user.email chang_chunhuaqq.com
[rootgit-developer jenkins]# git config --global color.ui true[rootgit-developer jenkins]# echo 11111 1.php
[rootgit-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[rootgit-developer jenkins]# git add *
[rootgit-developer jenkins]# git commit -m Added 1.php
[main cdc0119] Added 1.php1 file changed, 1 insertion()create mode 100644 1.php可以看到1.php文件上传成功 那开发者这块是没有问题的。 Nginx服务器的准备
在Nginx服务器上安装nginx并启动nginx。
[rootnginx ~]# yum install epel-release
[rootnginx ~]# yum install nginx -y
[rootnginx ~]# systemctl start nginx
[rootnginx ~]# systemctl enable nginx jenkins安装插件
jenkins图形安装publish over ssh插件 可以看到Publish Over SSH插件已经安装完成。 确认Git plugin插件已经安装完成。 配置Jenkins服务器通过Publish over ssh免密连接Nginx
1第1步: 在jenkins服务器上生成空密码密钥对
[rootlocalhost soft]# ssh-keygen 2查看并复制私钥
[rootlocalhost .ssh]# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAqbt2nAw4gB3/3HGa06WZGfZZkccGXdp2dCZX3Vm6MH0zPaOA
egxfVplgtIMYuXScy1d/4De02p5UTBBRP2XywsXcfneikrffY7JGHY5stmYCR0
V9fNLnWZaoUpBn3DWXH4Cz4QeJCmXMU5hQ0guL3AX4IBQOTOVEiMMVOO8/Ae/BI8
qO7jZAINalrfxTZDpOvmOwbOAn0Zj7mt4cOBsX67mmHm2Ci1/5eeEZzJEcCR/xp
bBSnh5XXIMcfHD9d0SmWyyrgEm4JWngEFQVzauDvYWJfNqFcHuLp4nx6Jm5QBZj
GqEF9TCevUzs5n2OHsGu4cZoRQaFT8zazpgpGwIDAQABAoIBAH/dqAwmn3jFmYm
oy9U3gyqW/PaZjJRcQIusccJ95bzRJPJ8bLqiXm1zd1OlsAA1gqWRL8/kXZyFulC
dn2kmJDfNQ5InTJWtkNSBmV1t7jNsjndgp/hBDJtjR0ENKv6U3y94wOpHr59Byy
3H4FyXECcD3yLVtYWusYx1uA1oFGKVdmYkA7WS9tQjjR6Itvt1hsfzydGQdyL00
9NxXA6A4R1BreMDjAToPD1AbmmYjDYIujZNlZl2mUBWFCCsJGPMs5OPvi2T9ir
9OSPbC/8v8iZo7l2EbHGvFCtyUpKypuy57zI521KT7wxMDjRQ2KFrY2lqu6ZwXi
ANRC/VECgYEA1CKZ/LnPie0X8Sg0HrvHDrUsa38ODhpeXYzscSnbawXHkT/eF0e7
rTbUF2wEfmKZGK0zb/AK1bt9KxufWLKJDWBFkjf5e1IqKfc34UzoEHK2v6KEfLV
3S07QFoYaFF2onu4HnAfPxnn8JIYHwdkVVRPSgBq/SxND8hPRMZ9xpUCgYEAzNRC
q59bZjEn3Jhi2eD6QtBCzfwN0AxAeXKlP8SvR79iAA1XJiZjoK9lAABrdncAU6SU
LkX6Z/RDLef9gos9xReV1kU7k7tY4UdvMk1YUEh7C9txHQNjeQHoXByq5Ftpz2m2
aDVgZ3wfRP8uI1xIdbYwqwKzkm9iAgTXWpWftO8CgYEAwp7UI7bdHy80Tf2Sg7fH
EklJbX3tiSbLIv3yIKcWX298BZmTXl0R6ALyUlCfik7SBZvIIuKLTjdqyIfZE2k
IsArpCRLtgiSJpmK3E66ZIa3816fkYP2jaqXt5xw1BQZAUz8SICZSi0cSvc0WrY
tChbbgsgHRHtyVL1pw8fFkCgYEAnGd8XUZ66UahtI1b9hkXoAsc5MOvQ2N8e68
Bjxux295KqcFIlua9ViXyTy6eumgTgLumXO9rAK2DPsXVFromMHFC2bd4w4KxV7
8EIlLHCcHIq9DbV3sH/naOavC15OJoYHNf2EFqEt02azWWbvIYs0EHEoo6mPghEm
TFIyOFsCgYBwaSZ5bGqIQLZgJq1d6FkGzKvS8lrWQGNVds4Ne5iNrMUoeRe6O7
hwsqypAdLhgbF8SgrXxYMOhHBrSMdnaqaAJl5V0H5ydC3rkX/UsGa1pCWsendpVq
TZzTR0pdmNiNYTslQW9ILm9ZkWpaQmwGFFGpTmRqPuYUZHUWByiGw
-----END RSA PRIVATE KEY-----这段私钥只是代表这台服务器的root账户私人免密并不能代表jenkins软件免密。 3在Jenkins中添加私钥
安装了插件才有这个Publish over SSH。 还需要添加要连的服务器 然后点击保存。
还可以做一个测试。 这样就是配置jenkins软件的私钥。
私钥是解密公钥是加密。 4在jenkins服务器上配置对nginx服务器的免密登录。 [rootlocalhost .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) cant 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
root192.168.17.121s password:Number of key(s) added: 1Now 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的私钥。 小结