【问题标题】:Python Fabric module usagePython Fabric 模块使用
【发布时间】:2021-10-22 06:37:51
【问题描述】:

尝试将Fabric 模块用于与远程机器对话以运行各种命令的 Python 脚本。我打算使用Fabric 作为一个模块来建立和运行ssh 上的命令。将Fabric用作常规Python模块from fabric import Connection并像python script.py一样直接运行脚本是一种好习惯吗

我已经测试过了,它工作正常。

【问题讨论】:

  • 你用的是哪个python版本?

标签: python ssh fabric


【解决方案1】:

Fabric2 是您需要与 python 2.7+ 一起使用的。通过从命令行运行pip install fabric2 来安装它!

然后创建一个fabfile.py 并使用以下代码:

@task
def deploy(ctx, env=None):
    try:
        with connection(host=REMOTE_HOST, user=REMOTE_HOST_USERNAME,) as c:
            c.run('whoami')
            c.run('echo "do what you want to do"')
            c.run('mkdir new_dir')
    except AuthenticationException as message:
        print(message)
    except SSHException as message:
        print(message)

进入你fabfile.py所在的目录,从命令行执行这个命令:

fab deploy 

更新

你可以把deploy()函数放在main.py里面

from fabric import Connection as connection, task
from paramiko import AuthenticationException, SSHException


def deploy():
    try:
        with connection(host='faceai-uat', user='admin.peshmerge') as c:
            c.run('whoami')
            c.run('echo "do what you want to do"')
            c.run('mkdir new_dir')
    except AuthenticationException as message:
        print(message)
    except SSHException as message:
        print(message)

def main():
    print("Start deploying")
    deploy()


if __name__ == "__main__":
    main()

在命令行中通过python3 main.py 执行文件!

【讨论】:

  • 谢谢,我正在尝试在普通 python 脚本中使用 fabric 并作为标准 python 脚本调用,而不是使用 fab 命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
  • 2020-11-13
  • 2020-09-26
  • 2015-06-16
  • 2018-01-07
相关资源
最近更新 更多