1. 配置远程服务器SSH免密登录
- 本地客户端生成公私钥(一路回车默认即可),会在用户目录.ssh文件夹下创建公私钥
1 | [localuser@localhost .ssh]$ ssh-keygen |
- 上传公钥到服务器,这里远程服务器地址为:192.168.2.200,用户为:testuser
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub testuser@192.168.2.200 |
上面这条命令会在远程服务器的~/.ssh
目录生成authorized_keys
,里面是id_rsa.pub(公钥)内容。
若目标服务器已经存在了
authorized_keys
,则可拷贝公钥内容追加到authorized_keys
内容的末尾。
- 测试免密登录,本地客户端通过ssh连接远程服务器,就可以免密登录了。
1 | [localuser@localhost ~]$ ssh testuser@192.168.2.200 |
2. 登录Jenkins客户端并配置
先安装插件:Git Paramater
,这里只演示部署,因为已在本地打好包推送到了git服务器。
- 新建Item, 输入任务名称:
MavenTest
(自己定义),选择自由项目,点击确定
。 - 勾选
This project is parameterized
(参数化构建)- 选择
Choice Parameter
,添加打包环境参数(名称:buildEnv,选项:beta和prod); - 选择
Git Parameter
,定义参数名称:gitBranch
,参数类型选择分支
;
- 选择
- 源码管理,选择Git,填写仓库地址(
Repository URL
)和选择凭据(Credentials
)。 - 构建环境,勾选
Add timestamps to the Console Output
,加上时间戳。 - Post Steps,选择执行shell脚本Execute shell,输入:
1 | cd /home/jenkins/shell |
3. 编写部署脚本
- 本地客户端
1 | [localuser@localhost ~]$ cd /home/jenkins/shell |
1 | !/usr/bin/bash |
1 | 添加执行权限 |
- 远程服务器
1
2[localuser@localhost ~]$ cd /usr/local/test
[localuser@localhost ~]$ vim demo-deploy.sh
1 | !/bin/env bash |
1 | 添加执行权限 |
4. 部署测试
Build with Parameters
-> 选择要部署的git分支${gitBranch}
和环境参数${buildEnv}
构建完成后点击Build History
(构建历史)里的构建版本号,点击控制台输出
查看日志