python Fabric - 将主机作为参数传递

标签 python fabric

下面是我的 fab 文件。

env.hosts = ['111.111.111.111']
env.user = "root"
env.key_filename = "/home/ubuntu/.ssh/id_rsa"
def chef():
    run('mkdir -p /home/ubuntu/')]

如何将主机作为参数传递,以便我可以像这样调用?

fab test host=111.111.111.111

env.hosts = [host]
env.user = "root"
env.key_filename = "/home/ubuntu/.ssh/id_rsa"
def chef():
    run('mkdir -p /home/ubuntu/')]

最佳答案

./fabfile.py
from fabric.api import run, env

env.user = "root"
env.key_filename = "/home/ubuntu/.ssh/id_rsa"
def test():
    run("mkdir -p /home/ubuntu/")

---
fabric:~$ fab test -H 111.111.111.111
>>>[192.168.99.20] Executing task 'test'
>>>[192.168.99.20] run: mkdir -p /home/ubuntu/
>>>
>>>Done.

[-H] 选项将 env.hosts 设置为给定的以逗号分隔的主机字符串列表。 请查看here详细的 fab 命令用法

或者像这样。

./fabfile.py
def setenv(host=None):
    if host is not None:
        env.hosts= [host]
    env.user = "ubuntu"
    env.key_filename = "/home/ubuntu/.ssh/id_rsa"

def test():
    run("mkdir -p /home/ubuntu/")

---
fabric:~$ fab setenv:web01 test
(snip)

关于python Fabric - 将主机作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756678/

相关文章:

python - 如何将 keras 嵌入层与 3D 张量输入结合使用?

python - 可以使用 Python 3 的数字格式将数字四舍五入到百、千等

python - 如何在Python中删除数据框中单词的精确匹配?

python 织物日志记录

python - 如何读取使用cli设置的fabric环境变量

python - 在 Python 中打包旧版 Fortran。可以使用 setuptools 和 numpy.distutils 吗?

python - 当用户从 PyPI pip 安装您的软件包时,从 setup.py 中访问用户激活的虚拟环境

python - 为什么我的 Python 脚本编写的是 Windows 风格的回车符?

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

Python Fabric 名称错误 : global name 'log_action' is not defined