Python Fabric 和 Amazon EC2 : Sudo password asked

标签 python amazon-ec2 fabric

您知道在 EC2 上,没有与“ubuntu”用户关联的密码。如果我尝试运行以下几行:

fab 开发安装目录

我明白了:

[ec2-46-51-132-252.eu-west-1.compute.amazonaws.com] sudo: chown -R webadmin:webadmin/var/www [ec2-46-51-132-252.eu-west-1.compute.amazonaws.com] 登录密码:

我尝试将 shell=False 添加到 sudo 方法(根据 Can I prevent fabric from prompting me for a sudo password? ),但它没有任何改变

有什么想法吗?非常感谢!

def development():
    env.envname = 'development'
    env.user = 'ubuntu'
    env.group = 'ubuntu'
    env.chuser = 'webadmin'
    env.chgroup = 'webadmin'
    env.hosts = ['ec2-***.eu-west-1.compute.amazonaws.com']
    env.envname_abriev = 'dev'
    env.key_filename = '/home/xx/.ssh/xx.pem'

    env.postgresql_version = '9.0'

def install_dir():
    if not exists('/var/www'):
        sudo('mkdir /var/www')
    sudo('chown -R %s:%s /var/www' % (env.chuser, env.chgroup))

最佳答案

从 aws 下载(或创建) key 对文件,如下所示 Download keypair from the highlighted section

创建一个名为 fabfile.py 的文件 并设置其内容如下:

from fabric.context_managers import cd
from fabric.operations import sudo
from fabric.api import run, env
import os

HOME = os.getenv('HOME')

env.user = 'ubuntu'
env.hosts = ['PUBLICDNS.ap-southeast-1.compute.amazonaws.com','ANOTHERSERVER.compute.amazonaws.com'] #can add multiple instances
env.key_filename = [
'%s/<your-keypair-file>.pem'%HOME
     ] #assuming keypair file is located in HOME

#example code we want to run on remote machine
def update():
    with cd('/var/www'):
            sudo('svn update')
                 with cd ('/var/www/cache'):
                       run('rm -rf *')
    sudo('service lighttpd restart')

要运行该文件,请在终端中键入 fab update。

关于Python Fabric 和 Amazon EC2 : Sudo password asked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381581/

相关文章:

python - Python Fabric 函数的直接输出到远程主机上的文件

caching - 维护 EC2 实例上的 redis 缓存之间的状态

amazon-web-services - 在 ubuntu 20.04 AWS EC2 节点上安装 nginx 时出现问题

python - 如何正确分发基于 python-fabric 的 python 应用程序

Python 3 多处理仅使用一个核心并打开 4 个线程

python - 类型错误 "Bad input argument to theano function"

python - 向量化方程

python - 时间序列中第一条记录的 Pandas Diff(),缺失数据返回 NaN

python - 如何访问在 Amazon ec2 上运行的 Django 应用程序?

ubuntu - 在 Fabric 脚本中调用 bash 别名