前期准备工作
   
工欲善其事必先利其器,所以前期的准备工作必须做好,那么我们要实现自动化部署,必须提前准备什么呢?哈哈哈,可能有一些小伙伴已经猜到了,我们需要一台自己的服务器,这里博主使用的自己够买一台腾讯云的轻量服务器,折扣完了才一百多块钱,当然小伙伴也可以考虑购买阿里云或者自己使用虚拟机来搭建环境实现自动化部署,好了下面进入正题
    腾讯云服务器 :
    
     购买
    
   
    
    
    安装
   
    
    
    1.先安装docker环境
   
如果在购买服务器选择docker环境的,这里就不需要在服务器先安装docker环境了,没有安装的要先安装docker环境可以参照博主这篇我和docker有个约会这篇文章将docker环境先安装好
    
    
    2.使用docker-compose 编排的方式依次安装网关,docker的图形化管理界面portainer,jenkins,java,mysql,以及nginx
   
    eg:如下图所示
    
     
   
    
    
     
   
    
    
     
   
    
    
    3.初始化docker图像化管理工具portainer
   
    安装完portainer图形化管理工具后,可以管理部署在docker中容器,通过公网ip加绑定宿主机对外暴露端口进行访问,如下图所示
    
     
   
    
    
    4.初始化jenkins
   
安装完jenkins后,跟portainer一样,也可以通过暴露的端口访问,但是刚开始的时候进入jenkins,要从服务器获取jenkins初始密码去解锁jenkins
    
    
    在网页中,输入密码然后继续。接下来会让我们选择需要的插件,第一次使用,安装推荐插件即可
    
     
   
     
   
如果因为网络原因安装失败,可以点击重试按钮进行重试。
接下来创建一个新的用户,也可以不创建新的用户,直接使用 admin 即可:
    
    
    设置 Jenkins 访问地址:
   
     
   
设置完成后,我们点击保存并完成按钮即可。接下来就可以进入到 Jenkins 中了。
整个过程执行完毕后,建议通过图形化管理工具重启一下 Jenkins,因为有的插件需要重启之后才会生效。
    
    
    4.1 安装插件
   
Jenkins 启动成功之后,接下来我们安装必要的插件:
- Maven Integration:Maven 构建工具
- Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
- Gitee:协助使用 Gitee 仓库。
- local
- Backup
- Fail The Build Plugin
安装步骤如下:
    
    
    然后在可选插件中,搜索 Maven Integration 和 Publish Over SSH 以及 Gitee 等插件:
   
    
    
    搜索完成后,点击 Install without restart。
   
安装成功之后,重启 Jenkins。
    
    
    建议执行 docker restart jenkins 去重启,点击网页上的重启,会卡很久,还是执行 docker 重启命令靠谱一些。
   
    
    
    4.2 配置jenkins
   
插件安装成功之后,接下来我们开启 Jenkins 的配置,在正式开始配置之前,先做一点准备工作。
这个需要我们提前准备好 Maven,服务器我们已经编排了jdk了,只需要提前准备 Maven 即可。为了避免权限问题,我们可以直接将 Maven 上传到 jenkins 容器中,然后去配置即可。
如下将宿主机中的 maven 拷贝到 Jenkins 容器中:
接下来就可以开始配置了,配置的位置如下图:
    
    
    名字随意取,MAVEN_HOME 则是前面刚刚上传到服务器容器中的 MAVEN 目录。
   
    
    
    4.3配置git
   
配置 Git,由于 Jenkins 容器中已经存在 git 了,所以这里不需要额外安装 git,默认即可。
    
    
    所有都配置完成,点击保存按钮。
   
    
    
    4.4 远程的凭证配置
   
    
    
    4.4.1应用服务器信息
   
应用服务器,就是将来 Jenkins 将代码构建成 jar 包后,要上传的服务器的信息(地址、用户名以及密码)。
配置步骤如下,首先找到配置的位置:
    
    
    往下拉找到 Publish Over SSH,然后点击新增,开始配置,Hostname 位置填写你服务器的域名或者 IP:
    
    
    
    配置成功后,点击测试连接进行测试,确保连接是成功的。
   
有的小伙伴反馈这里用户名密码会导致 jar 包上传失败,要在应用服务器上生成 ssh 密钥对,然后将私钥配置给 Jenkins(这块大家结合自己情况来看,如果后面 jar 上传失败,可以回来改一下这里)。
    
    
    4.4.2 配置凭证
   
要根据这些凭证,才能从 Gitee ,gitlab,码云等上拉取代码下来,点击 添加->Jenkins,添加凭证:
     
   
    
    
    5.开始一个项目构建
   
    首先我们新建一个任务
    
     
   
    接下来我们选择构建一个 Maven 项目
    
    
    
    点击确定之后,拉到源码管理位置,开始配置。
   
首先选择 Git,填入gitee/gitlab/码云上的仓库地址,然后凭证就写 gitee/gitlab/码云 的用户名/密码。
     
   
选择之前配置好的全局凭证
    
    
    接下来输入项目构建命令,将来 Jenkins 从 Gitee 上拉取代码下来之后,就执行该命令对项目进行打包:
    
    
    
    最后,配置上传构建好的文件,并执行启动命令,如下
    
    
    
     
   
根据上图的配置,我们使用 root 用户登录,root 登录成功之后,默认进入到 /root 目录下,接下来会自动进入到 data 目录,然后我们的 jar 包就上传到这个位置上。
然后我们在应用服务器上也提前准备好一个编排好文件叫restun-consumer-admin.yml,位于 /root/docker-develop/project/test 目录下,这个文件内容如下:
    
    
    至此,这个项目就配置完成了。
   
    保存之后,点击立即构建按钮,就可以开始构建了:
    
     
   
开始构建之后,可以点击构建按钮,查看构建过程:
    
    
    点击控制台输出,可以查看整个构建过程:
    
    
    构建完成后,通过docker图形化管理工具,就可以看到我们的应用程序已经跑起来了。
    
     
   
 
