服务器互信

A服务器:Jenkins 所在服务器

B 服务器:项目部署所在服务器

A 服务器生成秘钥

ssh-keygen
# 一路回车

A 服务器 将本地的ssh公钥文件安装到远程主机对应的账户下 (也可以手动复制,推荐命令)

# 执行命令后输入密码完成复制
ssh-copy-id root@B服务器IP

#端口不一致复制方法
ssh-copy-id -i /root/.ssh/id_rsa.pub "-p 1008 root@B服务器IP"

# 使用该命令测试
ssh root@B服务器IP

# 登录后注意此时主机名已经是 B 服务器的了 查看命令
hostname

# 修改主机名 centos6
vim /etc/sysconfig/network  #编辑network文件修改hostname行(重启生效)
# 检查修改
cat /etc/sysconfig/network

# 修改主机名 centos7
hostnamectl set-hostname www.iyouhun.com # 使用这个命令会立即生效且重启也生效

复制后的文件在 home/用户名/.ssh/文件下名为 authorized_keys

# 比如 新建了一个 Jenkins账户
cat /home/jenkins/.ssh/authorized_keys

# root 账户在
cat /root/.ssh/authorized_keys

Publish over SSH 插件配置

Passphrase: 如果生成秘钥的时候输入了密码,就在这里输入,否则留空

Path to Key: Jenkins 所在服务器秘钥(id_rsa)的路径,和下面的Key二选一

Key: Jenkins 所在服务器秘钥(id_rsa)的路内容,和上面的Path to Key二选一

Disable exec: 禁用命令执行,删除从此插件执行命令的能力

SSH Servers

Name: 名称,标识,自定义即可,仅用作识别

Host name: 主机名,服务器的主机名或 IP 地址,这里填写B服务器的 IP地址

Username: 将用于连接到主机的用户,比如 root

Remote directory: 远程服务器上的一个目录,将用作此配置的有效根目录,比如/www/wwwroot

高级选项

Use password authentication, or use a different key 可以勾选使用密码连接或者秘钥连接

Passphrase / Password:秘钥密码或者用户名密码

Path to Key: Jenkins 所在服务器秘钥(id_rsa)的路径,和下面的Key二选一

Key: Jenkins 所在服务器秘钥(id_rsa)的路内容,和上面的Path to Key二选一

如果用秘钥链接记住这里是Jenkins(A 服务器)的私钥(id_rsa)

Port:远程服务器端口,如果修改了端口,这里记得也改一下

更多参考:https://wiki.jenkins.io/display/JENKINS/Publish+Over#PublishOver-host

项目发布设置

1.点击 Jenkins项目的构建环境

2.根据项目情况选择以下两项

3.选择刚刚添加的发布服务器

4.传输设置

Source files:源文件,支持全部匹配,如果要传输文件夹内所有文件和文件夹则需要在文件夹路径后加两个*符号 模式文档

Remove prefix:移除前缀,是指源文件的前缀,比如现在我们只是传输html文件夹里的所有文件,但是html文件夹本身不需要在远程服务器出现,那么就需要将其移除.

Remote directory: 远程服务器目录,注意该目录是相对于刚刚系统设置里ssh servers里设置的路径,没有会创建

那么我的此次的目录就是/www/wwwroot/www.iyouhun.com

exec command:在传输完成后执行的命令,一般为清理文件、复制文件、重启一些服务等等

欢迎留言