Publish Over SSH
插件的主要作用是通过 SSH
连接其他 Linux
机器,向远程主机发送文件和执行命令,官方文档
安装Publish Over SSH
插件
Manage Jenkins` -> Manage plugins -> Available -> 输入 Publish Over SSH
SSH Servers配置
Manage Jenkins
-> Configure System
拉到最下面可以看到 Publish over SSH
各参数解释
-
Passphrase
:如果私钥设置了密码就是私钥的密码,私钥没设置密码可以不填 -
Path to key
:私钥的位置 -
Key
:私钥的内容。如果此处填入了值,则以此处的值为准,会忽略掉Path to key的配置 -
SSH Servers
服务器的配置
将Jenkins服务器的公钥复制到远程主机中,一般不用 root
用户,参考 linux 下开启 SSH,远程免密登录 #11
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
配置 build step
Execute shell
脚本,对前端代码进行打包压缩具体代码如下:
# 删除原来的dist目录 rm -rf dist npm i npm run build cd dist tar -zcvf test.tar.gz * # 再把打包文件移动到项目根目录下,方便传输 mv test.tar.gz ../ echo '打包完毕'
大坑警告 ,配置远程目录,这里设置的远程相对路径为/
/usr/share/nginx/yuqing
填写Exec command
# 将test.tar.gz包解压到指定的目录下 tar -zxvf /usr/share/nginx/yuqing/test.tar.gz -C '/usr/share/nginx/yuqing' # 删除tar包 rm -rf /usr/share/nginx/yuqing/test.tar.gz
配置参数说明
Source files
**/*
表示{projectName}
这个job
的工作目录下所有的文件和目录。Remove prefix
该操作是针对上面的source files目录,会移除匹配的目录。通常留空。Remote directory
大坑 该操作是基于设定的服务器目录进行。Exec command
远程服务器执行的命令。例如可以输出service jenkins restart
或者/home/xx. sh
均可。
注意, Source files
指的是当前这个 job
的工作目录下的所有文件及目录