![](/img/trans.png)
[英]while connecting to a host using fabric in python, getting a prompt(Login password for 'root':) asking for root password
[英]Resetting mysql root password from python-fabric without prompt
我正在尝试通过Python-fabric自动化应用程序的部署。 安装必须在没有任何人工干预的情况下进行。
在CentOS 6.4服务器中,如果我通过安装mysql
$yum install mysql-server
然后使用空密码安装mysql。
现在的问题是,当我通过发出以下命令从结构中重置mysql
根密码时:
run("mysqladmin -u %s -p password %s " % ('root','khd5u8bWN'))
它提示输入密码(为NULL),我必须按回车键才能继续。
现在,当我要实现“完全”自动化时,我希望这种“按Enter”会自动进行。 我如何在python-fabric中实现呢?
当mysql密码为空时,您可以通过省略-p
选项来登录该帐户。 因此,将您的运行命令更改为:
run("mysqladmin -u %s password %s " % ('root','khd5u8bWN'))
您既可以设置环境变量password
在env
dict
(“”应该工作,如果密码是没有密码),或者调用fab
与-I <pwd>
选项。
我通常使用后一种选项,因为它与代码无关。
根据OP的评论进行编辑:
尝试从使用run
切换到sudo
来运行命令(同时仍使用上述方法之一)。
编辑2以回应OP的后续评论:
基于提供的信息,我很确定sudo
是关键,但也许设置了某些参数。 请参阅http://docs.fabfile.org/en/latest/api/core/operations.html#fabric.operations.sudo
编辑3以回应添加OP后续评论:
回复:这是mysql
root密码,而不是OS的密码,这可能会引起一些思考: 在没有密码提示的情况下在ubuntu上安装mysql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.