【问题标题】:How to execute commands as root using fabric如何使用fabric以root身份执行命令
【发布时间】:2016-12-21 15:49:04
【问题描述】:

我正在尝试使用 Fabric 在远程服务器中执行一些基本命令。我以前没有使用过 Fabric,在执行一些命令时遇到了一些困难。

我需要做的是连接远程服务器,在特定目录下创建一个文件,然后重启uwsgi服务器。

虽然我能够完成前两个任务,但我无法重新启动服务,因为我没有以 root 用户身份 ssh 到服务器。

这就是我的工作:

def staging():
   env.hosts = ['user@my_host']

def update_app(app_name):
  with cd(git_folder):
    with settings(warn_only=True):
      sudo('mkdir -p /home/new_folder/test')
      #sudo('sudo su -') # also tried this
      sudo('service uwsgi restart')

当我包含 sudo su - 命令时,fab 脚本永远不会完成。我只是以 root 身份登录(在终端中)。

【问题讨论】:

    标签: python fabric


    【解决方案1】:

    为什么不只是sudo service uwsgi restart?如果sudo 是configured to allow that 而不提示输入密码,它应该可以工作。

    【讨论】:

    • 当我尝试这个时,我得到:root 不在 sudoers 文件中。将报告此事件。警告:sudo() 在执行 'mkdir -p /home/new_folder/test;sudo service uwsgi restart' 时收到非零返回码 1!
    • 您能否手动 ssh 到目标主机并确保您要运行的命令可以实际运行?此外,如果您已经以 root 身份运行(看起来),则不需要sudo!尝试删除它。
    猜你喜欢
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多