jenkins跨主机部署docker

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014258541/article/details/80319972

需求:Jenkins部署在服务器A,另有服务器B,现在需要将所有部署的项目均用Jenkins管理起来,但是Jenkins构建部署的docker容器跑在服务器B中。

一、Jenkins设置-可执行远程shell命令

  • 安装插件:进入系统管理/插件管理,查询SSH,即可查的“SSH plugin”插件,安装插件后重启。
  • 配置SSH remote:重启完后,进入系统管理/系统设置界面,在“SSH remote hosts”点击“增加”,新加SSH sites。输入hostname、port、Credentials等信息。点击“保存”即可。
  • 进入项目配置界面:在项目写脚本处,选择“Execute shell script on remote host using ssh”,在SSH site选择需要远程连接的SSH,以及在命令行界面写远程执行的shell命令。

二、两服务器设置-免密码登录

Jenkins有SCP插件,但是Jenkins插件管理有警告如下:“Warning: This plugin version may not be safe to use. Please review the following security notices:”。所以没有采取安装插件,而是做两个服务器之间的免密码登录。

  • 在服务器A生成密钥对

    ssh-keygen -t rsa -P ""

    执行上述命令,一路回车,会在当前登录用户的home目录下的(我使用root用户即为/root/.ssh目录下)生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥。

  • 拷贝A的公钥(id_rsa.pub)到服务器B:将之前生成的公钥拷贝到服务器B的/root/.ssh目录下:

    scp /root/.ssh/id_rsa.pub root@服务器B的IP:/root/.ssh

  • 登录服务器B,将公钥拷贝到authorized_keys文件中:

    cd /root/.ssh
    cat id_rsa.pub >> authorized_keys

-试验成果:此时在A中用SSH登录B或向B拷贝文件,将不需要密码

ssh root@服务器B的IP
scp file.txt root@服务器B的IP:/文件存储的路径

实现B免密码登录A,操作方式是一样的,在B中用ssh-keygen生成ssh密钥对,将公钥拷贝到A中,A将B的公钥拷贝到.ssh目录下的authorized_keys文件中即可。

猜你喜欢

转载自blog.csdn.net/u014258541/article/details/80319972