首页 > 使用ansible v2.0 api怎么指定hosts

使用ansible v2.0 api怎么指定hosts

我想用python ansible api操作服务器,但是想要操作的服务器并不确定,请问怎么指定hosts。代码类似这样

play_source =  dict(
        name = "Ansible Play",
        hosts = hosts,
        gather_facts = 'no',
        tasks = [
            dict(action=dict(module=module))
         ]
    )
    play = Play().load(play_source, variable_manager=variable_manager, loader=loader)

还有一个问题,怎么指定 2.1 版本的 ansible API 中的 hosts,直接指定的话报 OSError: [Errno 24] Too many open files

play_source = dict(

    name = "Ansible Play",
    hosts = '172.17.33.214',
    gather_facts = 'no',
    tasks = [
        dict(action=dict(module='shell', args='ls'))
     ]
)

如果hosts是不确定的话,可以用动态inventory来实现。
而且hosts应该是支持正则匹配的吧~


可能是我描述不清吧,楼上的回答跟我的问题并没有关系。。。
我的意思是ansible2.0的api似乎不能像以前一样传入一个hosts列表,只能指定某个host文件里的某个组(或者全部组),但是我无法预先写好一个hosts文件和组,因为要操作哪些服务器是在web上输入的。我现在解决的方法是对于传入的hosts列表,遍历后写在一个临时文件里,Inventory指定这个临时文件即可。

【热门文章】
【热门文章】