需要借用publish-over-ssh/插件
准备工作:需要在安装jenkins的机器上安装以下几个环境
1、git(用来拉取仓库地址)
2、nodejs(用来打包)
3、nginx(用来启动项目)
之后就可以在jenkins上新建任务了
第一步:新建项目
第二步:添加项目配置
补充:安装完publish over ssh插件后的配置
配置之后点击testconfiguration测试一下,如果不通,可按照下方配置进行修改,如果通了,可忽略
配置SSH秘钥
这一步是为了Jenkins所在的服务器通过SSH访问目标机器时获得免密授权
登录Jenkins所在的服务器,执行 ssh-keygen
将公钥拷贝到authorized_keys文件
执行完 会生成一个
authorized_keys文件,如下:
将生成的authorized_keys拷贝到要连接的linux机器上的对应用户或者直接root下的.ssh文件夹下
执行上面命令 会提示你输入目标机器的密码 确定后 就会将存有
Jenkins所在服务的公钥文件authorized_keys存在目标机器的/root/.ssh下了,并且在Jenkins所在服务器的/root/.ssh下也会新增一个known_hosts文件
在服务器中配置完秘钥之后,接下来需要在
Jenkins中做配置:
Jenkins -->系统管理–>系统设置
找到Publish over SSH
Publish over SSH公共配置:
- Passphrase 刚才在Jenkins服务生成秘钥时如果有输入密码 则填写 没有填写则空着
- Path to key 秘钥的路径
- Key 刚才生成的私钥 也就是生成的
id_rsa文件 可以在服务器上通过命令cat id_rsa获取到SSH Server私有配置 - SSH Server 服务名称 自定义 方便区分即可
- Hostname 目标服务器的IP地址
- Username 目标服务器的用户名
- Remote Directory 目标服务器的目录名称 Jenkins推送过来的包会放在这个位置(注: 刚才填写的用户名需要有权限对此文件目录有读写权限) 其他的不必配置
配置完成后,点击 Test Configuation测试一下
可能会报错:
当前秘钥首行
发现如上报错 原来是因为Jenkins当前版本不支持这种秘钥格式
解决报错:
我们需要在Jenkins服务上生成指定格式的秘钥
说明: -m 参数指定密钥的格式,PEM是rsa之前使用的旧格式 -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。
把之上的流程再走一遍
如果测试结果是Success,则配置成功了