Fabric2 中的须藤
Sudo in Fabric2
我想重现我的旧 Fabric1 脚本的行为 运行
sudo('useradd -m -u --groups mygroup myuser')
在那种情况下,远程机器(一个 Ubuntu AWS 实例)会提示我输入我的 sudo 密码,我可以输入它。即使在输入错误后重复提示也可以。之后,Fabric1 将通过保持连接打开来保留该密码。
在我的新 Fabric 2.x 脚本中,我在 @task
中使用
c.sudo('useradd -m -u --groups mygroup myuser')
我仍然收到用户提示,但它没有等待我的响应,我无法输入密码,并且按预期失败
invoke.exceptions.AuthFailure: The password submitted to prompt '[sudo] password: ' was rejected
使用 --prompt-for-sudo-password 参数具有相同的效果(或无效)。
我也试过了
run('sudo useradd -m -u --groups mygroup myuser')
并收到
sudo: no tty present and no askpass program specified
我最好不要在没有 Fabric 1.x 的机器上设置 askpass 程序(除非我可以从我的脚本中做到这一点,我猜这需要 sudo)。
我一直在用头撞墙尝试使用复杂且没有很好记录的配置系统,但没有成功。
我错过了什么?如果需要额外的配置,我想知道配置文件的语法以及放置该文件的位置,以便 fab CLI 命令获取它。
在任务之前传入参数似乎很重要,因此请确保您不只是在命令末尾添加参数。例如,这失败了(不提示输入密码,然后 sudo 身份验证失败):
$ fab -H myhost mysudotask --prompt-for-sudo-password
[sudo] password: Sorry, try again.
[sudo] password: Traceback (most recent call last):
... <snip> ...
File "<string>", line 2, in raise_from
invoke.exceptions.AuthFailure: The password submitted to prompt '[sudo] password: ' was rejected.
虽然以下按预期工作(提示输入密码,然后执行 sudo 任务):
$ fab -H myhost --prompt-for-sudo-password mysudotask
Desired 'sudo.password' config value:
[sudo] password: hi 1
我想重现我的旧 Fabric1 脚本的行为 运行
sudo('useradd -m -u --groups mygroup myuser')
在那种情况下,远程机器(一个 Ubuntu AWS 实例)会提示我输入我的 sudo 密码,我可以输入它。即使在输入错误后重复提示也可以。之后,Fabric1 将通过保持连接打开来保留该密码。
在我的新 Fabric 2.x 脚本中,我在 @task
中使用c.sudo('useradd -m -u --groups mygroup myuser')
我仍然收到用户提示,但它没有等待我的响应,我无法输入密码,并且按预期失败
invoke.exceptions.AuthFailure: The password submitted to prompt '[sudo] password: ' was rejected
使用 --prompt-for-sudo-password 参数具有相同的效果(或无效)。
我也试过了
run('sudo useradd -m -u --groups mygroup myuser')
并收到
sudo: no tty present and no askpass program specified
我最好不要在没有 Fabric 1.x 的机器上设置 askpass 程序(除非我可以从我的脚本中做到这一点,我猜这需要 sudo)。
我一直在用头撞墙尝试使用复杂且没有很好记录的配置系统,但没有成功。
我错过了什么?如果需要额外的配置,我想知道配置文件的语法以及放置该文件的位置,以便 fab CLI 命令获取它。
在任务之前传入参数似乎很重要,因此请确保您不只是在命令末尾添加参数。例如,这失败了(不提示输入密码,然后 sudo 身份验证失败):
$ fab -H myhost mysudotask --prompt-for-sudo-password
[sudo] password: Sorry, try again.
[sudo] password: Traceback (most recent call last):
... <snip> ...
File "<string>", line 2, in raise_from
invoke.exceptions.AuthFailure: The password submitted to prompt '[sudo] password: ' was rejected.
虽然以下按预期工作(提示输入密码,然后执行 sudo 任务):
$ fab -H myhost --prompt-for-sudo-password mysudotask
Desired 'sudo.password' config value:
[sudo] password: hi 1