2016-04-07 124 views
3

是否可以使用Ansible adhoc命令中通常包含在ansible_facts中的内容?在Ansible ad-hoc命令中使用Ansible事实

例如,我有我所有的服务器在/tmp/myFile一个文件,我想这样做:

ansible all -i [inventory file] -m fetch -a "src=/tmp/myFile dest=myFile-[insert ansible_hostname here]" 

,而无需进行一个整体的剧本吧。

+0

为什么不只是试一试看看? –

+0

@TymoteuszPaul我已经给它一个尝试。访问它的通常机制不起作用 – Mitch

回答

3

不,你不能在可靠的气候中提及可靠的事实。这是因为当你运行ansible ... -m fetch时,你没有得到你正在运行的主机的事实。这些事实都聚集与setup模块(你可以通过做ansible ... -m setup尝试。 无论如何,这可以用一个简单的剧本就像

# file: fetchfile.yml 
- hosts: all 
    tasks: 
    - fetch: src=/tmp/myFile dest=myFile-{{ inventory_hostname }} 

$ ansible-playbook -i [inventory_file] fetchfile.yml 

ansible-playbook解决隐含运行setup模块,所以你将有机会获得所有的作为变量的事实