Fabric 有一个hosts设置来指定要通过 SSH 连接到哪些计算机。
Amazon Web Services 有更多的动态库存,可以使用boto等工具在 python 中查询。
有没有办法将这两种服务结合起来?理想情况下,我想要像 ansible 那样简单的方法,使用库存文件并使用像ec2.py这样的外部文件。
更具体地说,是否有针对此用例的预烘焙解决方案?理想情况下,我想像这样简单地运行一些东西:
from fabric.api import env, task
import ec2
env.roledefs = ec2.Inventory()
@task
def command():
run("lsb_release -a")
并像这样运行它,假设env.roledefs['nginx']
存在:
$ fab -R nginx command