说我fabfile.py看起来像这样:
def setup():
pwd = getpass('mysql password: ')
run('mysql -umoo -p%s something' % pwd)
Run Code Online (Sandbox Code Playgroud)
这个输出是:
[host] run: mysql -umoo -pTheActualPassword
Run Code Online (Sandbox Code Playgroud)
有没有办法让输出看起来像这样?
[host] run: mysql -umoo -p*******
Run Code Online (Sandbox Code Playgroud)
注意:这不是一个mysql问题!
相关问题:
我使用本指南将Putty配置为使用私钥(无密码)登录:http: //www.codelathe.com/blog/index.php/2009/02/20/ssh-without-password-using-putty/
有用.
现在我想在没有密码提示的情况下运行Fabric.这不起作用,我被提示输入密码.我假设Paramiko(或其他一些Fabric依赖)没有找到ppk文件.我在哪里放置私钥文件,如何告诉fabric/paramiko呢?
在Vista上运行,使用Python 2.6.5和最新的Fabric(0.91)/ Putty(0.60).
我正在使用Fabric运行以下内容:
def staging():
""" use staging environment on remote host"""
env.user = 'ubuntu'
env.environment = 'staging'
env.hosts = ['host.dev']
_setup_path()
def bootstrap():
""" initialize remote host environment (virtualenv, deploy, update) """
require('root', provided_by=('staging', 'production'))
run('mkdir -p %(root)s' % env)
run('mkdir -p %s' % os.path.join(env.home, 'www', 'log'))
create_virtualenv()
deploy()
update_requirements()
Run Code Online (Sandbox Code Playgroud)
但我明白了:
ubuntu@host.dev:~/projects/proj_name$ fab staging bootstrap
[host.dev] run: mkdir -p /home/ubuntu/www/staging
Password for ubuntu@host.dev:
Run Code Online (Sandbox Code Playgroud)
为什么Fabric要求我的密码?这是sudoers文件中没有密码的默认ubuntu root用户.这里发生了什么?
这个问题是关于最佳实践的.我正在使用Fabric运行部署脚本.我的部署用户'deploy'需要sudo来重启服务.所以我使用fabric中的sudo函数在我的脚本中运行这些命令.这工作正常,但在脚本执行期间提示输入密码.我不想在部署期间输入密码.什么是最好的做法.我能想到的唯一解决方案是将sudo权限更改为我的部署用户运行的命令不需要密码.这对我来说似乎不对.