我目前通过
运行我的剧本# ansible-playbook -i myscript.py myplaybook.yaml
其中myscript.py
生成相关的主机信息(按documentation),myplaybook.py
以
---
- hosts: all
(...)
这很好用。
我现在想
-i
参数,让host: all
指令明白它应该使用它。这是否可以在ansible中使用?我认为在剧本开头需要库存(=无法在剧本中生成)
答案 0 :(得分:2)
您可以使用add_host
模块动态创建广告资源
从这样的事情开始,并根据您的需要进行修改:
---
- hosts: localhost
tasks:
- add_host: name={{item}} group=hosts_from_webservice
with_url: https://mywebservice/host_list_as_simple_strings
# in this example web service should return one ip/hostname by line:
# 10.1.1.1
# 10.1.1.2
# 10.1.1.3
- add_host: name={{(item | from_json).host}} group=hosts_from_webservice description={{(item | from_json).desc}}
with_url: https://mywebservice/host_list_as_json_strings
# in this example web service should return JSON object on every line:
# {"host":"10.1.1.1","desc":"hello"}
# {"host":"10.1.1.2","desc":"world"}
# {"host":"10.1.1.3","desc":"test"}
- hosts: hosts_from_webservice
tasks:
- debug: msg="I'm a host from webservice"