用Jenkins在远程linux上创建用户

问题描述:

我需要在远程linux服务器上运行ssh脚本来添加一个用户,但是我没有做任何事情。用Jenkins在远程linux上创建用户

我组成2参数的用户名,然后尝试使第一部分是一个字符串的密码,但第二部分也是一个参数。我使用Jenkins SSH插件通过ssh运行脚本。第一部分,useradd的工作原理是因为我禁用了admin用户的sudo密码。但在passwd不想要工作...

我目前正在:

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

我怀疑问题后对方双PARAMATERS。

有什么想法?

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

此外,如果没有使用ssh插件,可以简化它并在构建机器上本地执行bash脚本(例如,在您可以提供/编写脚本的自定义构建步骤中),前提是您拥有ssh登录无密码(例如通过密钥)启用,使詹金斯用户可以登录到目标:

# Login 
ssh [email protected] << 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 
+0

真棒,谢谢,明天早上给它一个第一件事!谢谢。 – warhansen

+0

嗨@planetmaker,这工作正常从詹金斯(Ubuntu服务器控制台)的cmd行,但是当我通过詹金斯接口运行它时,我得到:[工作区] $/bin/sh -xe /tmp/hudson39674804574985594.sh + ssh [email protected] 由于stdin不是终端,所以不会分配伪终端。 警告:将“10.0.0.x”(ECDSA)永久添加到已知主机列表中。 权限被拒绝,请重试。 权限被拒绝,请重试。 权限被拒绝(公钥,密码)。 构建步骤'Execute shell'标记构建失败 – warhansen