数据库
首页 > 数据库> > 使用Fabric如何为psql提供密码?

使用Fabric如何为psql提供密码?

作者:互联网

我希望能够从远程计算机登录到我的AWS postgres数据库.我正在使用以下Fabric脚本:

import sys
from fabric.api import env, run, abort

env.port = 123
env.use_ssh_config = True

def setuser(user):
    """Sets the ssh user for the fabric script"""
    env.user = user
    env.password = 'mypassword'

def setenv(server):
    """Sets the environment for the fabric script"""
    env.hosts = ['staging']

def sync():
    # log into AWS server
    run("psql --host=staging.xxx.rds.amazonaws.com --username=x_user  --port=5432 --password --dbname=x_database")
    run("mypassword")

我使用以下命令运行此Fabric脚本:

fab -f sync_staging.py sync --password=mypassword

这使我登录到远程计算机,运行run(“ psql ….,这行,然后提示我输入密码:

[stage] out: Password for user x_user: 

有什么方法可以提供密码(或响应提示),以便密码自动登录?

解决方法:

我知道有两种解决方法:

远程主机上主目录中的> .pgpass password file
> PGPASSWORD env variable(在远程主机上设置)

如果需要在远程主机上设置环境变量,请与shell_env(PGPASSWORD =’mypassword’)和Fabric文档一起使用:fabric.context_managers.shell_env

希望它能解决您的问题.

标签:amazon-web-services,postgresql,amazon-rds,fabric,python
来源: https://codeday.me/bug/20191030/1964138.html