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