我试图通过Python-fabric自动部署应用程序。安装必须完成,无需任何人为干预。
在CentOS 6.4服务器中,如果我通过
安装mysql$yum install mysql-server
然后使用NULL密码安装mysql。
现在问题是我通过发出以下命令从fabric重置mysql
root密码:
run("mysqladmin -u %s -p password %s " % ('root','khd5u8bWN'))
它提示输入密码(为NULL),我必须按返回键才能继续。
现在,我想实现"完整"自动化,我想要这个"按下输入"自动。我怎样才能在python-fabric中实现这个目标?
答案 0 :(得分:1)
当mysql密码为空时,您可以通过省略-p
选项登录该帐户。因此,将运行命令更改为:
run("mysqladmin -u %s password %s " % ('root','khd5u8bWN'))
答案 1 :(得分:0)
您可以在password
env
中设置环境变量dict
("" 如果密码为no则应该有效密码)或使用fab
选项调用-I <pwd>
。
我通常使用后一种选择,因为它的代码不可知。
根据OP的评论进行编辑:
尝试从使用run
切换到sudo
来运行命令(同时仍然使用上述方法之一)。
编辑2以回应OP的后续评论:
我非常确定sudo
是此处的关键,基于提供的信息,但可能设置了某些参数。见http://docs.fabfile.org/en/latest/api/core/operations.html#fabric.operations.sudo
编辑3以回应添加OP后续评论
Re:它是mysql
root密码而不是操作系统密码,这可能会提供一些值得思考的东西:install mysql on ubuntu without password prompt