> 文章列表 > JAVA开发运维(Jenkins中踩的坑)

JAVA开发运维(Jenkins中踩的坑)

JAVA开发运维(Jenkins中踩的坑)

最近尝试通过Jenkins来自动化部署项目,没想到还踩了很多坑。Jenkins部署的基本原理:

通过Jenkins服务器拉取gitlab上的代码进行打包,推送到目标服务器上,并运行启动脚本

那么Jenkins就要解决三个问题。

1.连接上目标服务器

2.进行打包,并推送到目标服务器对应的目录。

3.运行启动脚本。

一、首先来解决第一个问题,连接上远程服务器。

1、Jenkins服务器要能ping的通目标服务器。

2、Jenkins服务器要能telnet 目标服务器的22端口。

3.在Jenkins生成密钥,它是一个公钥和私钥对,执行命令:

ssh-keygen -t rsa

/.ssh/id_rsa.pub

将公钥复制到目标服务器  /root/.ssh 目录下的  authorized_keys 文件 和

 id_rsa.pub 文件。如果  /root/.ssh 不存在这两个文件,就手动创建。

这里的坑一: authorized_keys内容不允许有换行,如果有换行,就需要手动删除换行。

 坑二:authorized_keys的权限必须是600 ,  id_rsa.pub 为700 ,同时这个目录权限必须是 700。

你随便给多权限是连接不了的 比如你给个 755 或者 777.都是不行的。

可以直接使用命令:

chmod  700  /root/.ssh
cd /root/.ssh
chmod  600 authorized_keys
chmod  700 id_rsa.pub

这就配合好Jenkins服务器到目标服务器连接的秘钥。

接下来需要在Jenkins管理配置上配置上连接目标服务器的操作。

进入Jenkins,点击“Manager Jenkins” 

 点击“Configure System”

 

在”SSH Servers”中新增服务器,配置如下图

 

 

 这个就是jenkins服务器成的私钥。

配置好后,点击测试配置

 

如果是sucess说明 jenkins服务器已经可以连接上目标服务器。

二、 通过Jenkins来打包代码并推送到远程服务器。

1、新建一个item

 

然后在配置项里配置项目的打包推送信息

 

 

General是构建任务的一些基本配置。名称,描述之类的。

项目名称: 是刚才创建构建任务步骤设置的,当然在这里也可以更改。

描述: 对构建任务的描述。  

源码管理是配置代码存放的位置。

 

Respository URL: 填写项目的Git地址

Credentials: 凭证,相当于用户,可以使用HTTP方式的用户名密码,也可以是RSA文件。建议直接选择root。

Branches to build:构建的分支。*/master表示master分支,也可以设置为其他分支。

源码浏览器:你所使用的代码仓库管理工具,如github, gitlab。可以选择“自动”。

 

 

 

上面是描述打包推送到目标服务器的配置 

三、运行启动的脚本配置

 

 这个是描述在目标服务器运行的启动脚本。