1、Ansible内置了一些变量以方便主机之间相互调用各自的变量。这些变量包括:
* hostvars允许你访问另一个主机的变量,当然前提是ansible已经收集到这个主机的变量了:
group_names:是当前主机所在的group列表
groups:是所有inventory的group列表
inventory_hostname:是在inventory里定义的主机名(ip或主机名称)
play_hosts是当前的playbook范围内的主机列表
inventory_dir和inventory_file是定义inventory的目录和文件
2、测试内置变量ansible-playbook:
---
- hosts: ‘{{ hosts }}‘
user: ansible
sudo: yes
sudo_user:root
tasks:
- name: Getthe all vars
shell:echo "{{ group_names }}"
#shell:echo "{{ play_hosts }}"
#shell:echo "{{ inventory_hostname }}"
register:res
- debug:var=res.stdout_lines
3、以上tasks中可以去掉对应#分别测试,执行查看结果:
$ ansible-playbook -i ./hosts playhosts.yml -e ‘hosts=all‘
本文出自 “老瓦房” 博客,请务必保留此出处http://laowafang.blog.51cto.com/251518/1619291
原文地址:http://laowafang.blog.51cto.com/251518/1619291