我正在尝试使用厨师自动化服务器配置过程。由于我不想将厨师作为根,因此我需要一个厨师/部署者用户。但是我不想手动创建此用户。相反,我想自动执行此步骤。因此,我拍摄了脚本,但遇到了一个问题:
问题是,如果我运行
>ssh root@123.345.345.567 '/bin/bash -e' < ./add_user.sh
add_user包含
//..if the username doesnt exist already
adduser $USERNAME --gecos ''
我从未看到命令的输出或提示。
- 有没有办法以这种方式运行交互式命令?
- 是否有更好的方法可以自动添加用户?
尝试以下:
ssh -t root@<ipaddress> adduser $USERNAME --gecos
不确定为什么在原始示例中的IP地址中有一个$
- 这可能会导致ssh
无法连接,但是由于您没有指示这种故障,我假设这只是错别字。
由于add_user.sh
只是一个简单的命令,因此无需显式运行bash
或重定向的复杂性,只需通过ssh
运行adduser
命令。
最后,由于$USERNAME
可能在本地端定义,而不是在遥控端上定义,即使您可以将原始命令列为"做您所说的话",您最终会在远程端运行adduser --gecos
,这不是您想要的。
尝试使用:
ssh -t root@$123.345.345.567 '/bin/bash -e' < ./add_user.sh
而不是。