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

发布于 2022-09-03 13:08:00 字数 363 浏览 11 评论 0

我想用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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

等风来 2022-09-10 13:08:00

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

韵柒 2022-09-10 13:08:00

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

情栀口红 2022-09-10 13:08:00

还有一个问题,怎么指定 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'))
     ]
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文