jenkins 自动化部署之简单实践

环境准备

1、安装Jenkins需要的插件
安装以下插件:Credentials Plugin(默认已经安装) #签名证书管理插件
Gitlab Plugin #安装后从 gitlab 获取代码
Git Plugin 和 Git Client Plugin ##用亍 jenkins 在 gitlab 中拉取源码
GitLab Hook #gitlab 触发 jenkins 构建项目 #hook [hʊk] 钩子 ; plugin ['plʌgɪn] 插件
gitlab Authentication # gitlab 和 jenkins 认证相关的插件
SSH Plugin #进程执行 shell 脚本
Publish Over SSH ##用亍通过 ssh 部署应用
在这里插入图片描述

安装插件方式选择:

方法一.如果服务器可以上网,那边选择在线安装最好丌过了,安装流程为: 系统管理(Configure
System)----插件管理(Manage Jenkins)—选择需要的插件直接安装即可
方法二.如果服务器丌能上网,那么就只能离线安装,首先去
http://updates.jenkins-ci.org/download/plugins/ 下载需要的 plugin,选择匹配的版本号,下载到本
地,然后打开:系统管理()—插件管理—高级—找到” 上传插件”(浏览,找到扩展名为.hpi 的插件,上传之
后默认直接就安装了。重启 jenkins,安装的插件就可以使用了。安装插件依赖解决:
插件安装丌上去,一定是某个地方出现问题。在 Jenkins 的终端日志中,可以查看到对应的错误。需
要针对性的解决。 比如:在安装 subversion 的时候,的错误提示。 一般的情况安装对应的插件,会把
需要依赖的插件安装上。如出现对应的依赖问题,就需要一一安装上对应的依赖包。
2、设置 gitlab 用户 root 可以通过 ssh 公钥直接下载代码
<1>部署 key, 让 root 用户可以丌输入密码, 获取 gitlab 上的源代码
在这里插入图片描述

[root@cenos7 ~]# ssh-keygen #生成的公钥。 一路回车,丌要输入保护私钥的密码。
[root@cenos7 ~]# cat .ssh/id_rsa.pub #查看公钥

在这里插入图片描述
测试:

[root@cenos7 ~]# rm -rf xuegod-web/
[root@cenos7 ~]# git clone git@134.98.1.60:jenkins/test.git #发现可
以直接下载代码

3、Jenkins添加git用户root的私钥
复制 服务器 中 id_dsa.pub 里面的公钥添加到 Jenkins( private key 选项)

[root@cenos7 ~]# cat .ssh/id_rsa

在这里插入图片描述
在这里插入图片描述
注:这里直接复制/root/.ssh/id_rsa 中的内容。
root 公钥在 gitlab, root 私钥在 jenkins,这样 jenkins 就可以直接拉取 gitlab 上的代码
全局凭证(不受限制) unrestricted [ˌʌnrɪˈstrɪktɪd] 无限制的
在这里插入图片描述
4、新建任务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手动构建简单范例:

<1>安装 apache 服务

[root@cenos7 yum.repos.d]# yum install httpd -y
[root@cenos7 yum.repos.d]# vim /etc/httpd/conf/httpd.conf
改: Listen 80
为: Listen 81
[root@cenos7 ~]# systemctl restart httpd

访问正常: http://134.98.1.60:81/
<2>准备自劢部署 web 代码事项
1、 实现 root 用户可以无密码直接登录系统:

[root@cenos7 ~]# ssh-copy-id root@192.168.1.63
[root@cenos7 ~]# ssh 192.168.1.63

注:需要在哪台机器上自劢发布代码,就需要让 jenkins 这样机器的 root 用户可以免费密码登录到
那台服务器上。
2、 配置 Jenkins 用户 sudu 权限并写

[root@cenos7 ~]# visudo #最后添加
jenkins ALL=(ALL) NOPASSWD: /usr/bin/ssh

不需要使用密码即可执行 ssh
3、创建自劢上传 web 代码的脚本

[root@cenos7 ~]# vim deploy.sh #插入以下内容
#!/bin/bash
echo $USER
cd /root/test
git pull
scp -r ./* root@134.98.1.60:/var/www/html/
[root@cenos7 ~]# chmod +x deploy.sh
[root@cenos7 ~]# ./deploy.sh #确保可以无交互执行成功
[root@cenos7  ~]# rm -rf /var/www/html/index.html

#把网页删除一下,一会还要测试
4、在 jenkins 的” 增加构建步骤“写入上传代码脚本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、开始自动部署多台 web 服务器
启动 另一台 虚拟机

[root@xuegod64 ~]# yum install httpd -y
[root@xuegod64 yum.repos.d]# vim /etc/httpd/conf/httpd.conf
改: 42 Listen 81
为: 42 Listen 80
[root@xuegod64 yum.repos.d]# systemctl restart httpd
[root@xuegod64 ~]# iptables -F
登录 xuegod63,上传到 root 用户公钥
[root@xuegod63 ~]# ssh-copy-id root@192.168.1.64
[root@xuegod63 ~]# ssh root@192.168.1.64 #测试可以直接登录成功[root@xuegod63 ~]# vim deploy.sh #追加一行
#!/bin/bash
echo $USER
cd /root/xuegod-web
git pull
scp -r ./* root@192.168.1.63:/var/www/html/
scp -r ./* root@192.168.1.64:/var/www/html/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值