【问题标题】:Create user on remote linux with Jenkins使用 Jenkins 在远程 linux 上创建用户
【发布时间】:2016-02-03 15:06:41
【问题描述】:

我需要在远程 linux 服务器上运行 ssh 脚本来添加用户,但我所做的一切都没有。

我将2个Parameters的用户名,然后尝试制作密码,其中第一部分是一个设置字符串,第二部分也是一个参数。我正在使用 Jenkins SSH 插件通过 ssh 运行脚本。第一部分,useradd 有效,因为我为管理员用户禁用了 sudo 密码。但是密码不想工作......

我目前正在尝试:

sudo useradd $FIRSTPART1_$SECONDPART2
echo -e 'PASSWORD_$SECONDPART2\nPASSWORD$SECONDPART2\n' | sudo passwd $FIRSTPART1_$SECONDPART2

我怀疑问题出在两个参数之后。

有什么想法吗?

【问题讨论】:

    标签: linux ubuntu jenkins ssh


    【解决方案1】:

    尝试在 echo 命令中使用双引号而不是单引号。

    此外,不使用 ssh 插件,只要您有 ssh 登录,您就可以简单地在构建机器上本地执行一个 bash 脚本(例如,在您可以提供/编写脚本的自定义构建步骤中)未启用密码(例如通过密钥),以便 jenkins 用户可以登录到目标:

    # Login
    ssh user@remote << ENDSSH
    # use normal commands as you would on shell or a local script;
    # any variables set previously in this bash script remain valid though
    sudo useradd $FIRSTPART1_$SECONDPART2
    echo -e "PASSWORD_$SECONDPART2\nPASSWORD$SECONDPART2\n" | sudo passwd $FIRSTPART1_$SECONDPART2
    ENDSSH
    

    【讨论】:

    • 太棒了,谢谢,明天早上第一件事就是试一试!谢谢。
    • 嗨@planetmaker,这在Jenkins(ubuntu服务器控制台)的cmd行中运行良好,但是当我通过Jenkins界面运行它时,我得到:[workspace] $ /bin/sh -xe /tmp /hudson39674804574985594.sh + ssh xxxxxxx@10.0.0.x 不会分配伪终端,因为 stdin 不是终端。警告:将“10.0.0.x”(ECDSA)永久添加到已知主机列表中。权限被拒绝,请重试。权限被拒绝,请重试。权限被拒绝(公钥、密码)。构建步骤“执行 shell”将构建标记为失败
    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    相关资源
    最近更新 更多