zoukankan      html  css  js  c++  java
  • jenkins系列_使用scp命令进行远程文件复制遇到的坑

    转自:https://blog.csdn.net/kingboyworld/article/details/78905553

    一、场景介绍

    项目为微服务项目,使用jenkins进行统一部署。基本思路是 
    1. 在jenkins服务器上使用git插件拉取项目代码 
    2. 使用gradle进行打包 
    3. 将打好的jar包使用scp远程复制到部署服务器上 
    4. 执行远程shell脚本启动jar包项目

    二、坑

    scp命令copy文件时需要输入密码,然而shell脚本中对密码输入的处理还是很麻烦的。有以下两种方式:

    1.使用密码插件,自动输入密码 
    或 
    2.使服务器之间相互信任,这样scp命令就不需要输入密码了

    第一种方式,网上搜了下,感觉很麻烦,就没有去尝试了。第二种方式的配置过程如下:

    1.复制jenkins服务器用户目录下的.ssh/id_rsa.pub中的内容

    (没有这个文件的话可以网上查查怎么生成)。

    cat ~/.ssh/id_rsa.pub

    2.将上面复制的内容添加到应用服务器(也就是需要远程部署应用的服务器)的.ssh/authorized_keys文件中。

    一般这个文件初始都是空的,直接使用vim命令复制进去就好。

    #如果文件是空的可以直接使用以下命令复制进去
    echo 复制的内容 >> ~/.ssh/authorized_keys

    这个时候环境配置就准备好了。

    3.这个时候使用jenkins构建时,仍然失败,提示权限不够,这就是坑。

    原因:虽然我们已经配置了相许信任,但是第一次使用scp命令需要先自己手动在shell中端中执行一次才可以。那么我们使用scp随意复制个文件过去,输入密码。

    之后再用jenkins复制文件就免输密码了。

  • 相关阅读:
    Codeforces 1163E 高斯消元 + dfs
    Codeforces 1159E 拓扑排序
    Codeforces 631E 斜率优化
    Codeforces 1167F 计算贡献
    Codeforces 1167E 尺取法
    Gym 102007I 二分 网络流
    Codeforces 319C DP 斜率优化
    Codeforces 1163D DP + KMP
    Comet OJ
    Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/9431411.html
Copyright © 2011-2022 走看看