轉自:http://www.cnblogs.com/lemon-le/p/6862788.html
先看看debug模塊的使用:
msg:輸出調試信息
var:將某個任務執行的輸出作為變量傳給debug模塊,debug模塊將其打印輸出
verbosity:debug的任務級別
1:在playbook中直接使用
---
- hosts: db
vars:
vvv: china
tasks:
- name: test var
debug: msg="The variable ‘vvv‘ is {{ vvv }}"
輸出結果:
2:在文件中定義
---
- hosts: db
vars_files:
- vars.yml
tasks:
- name: test var in file
debug: msg="The variable ‘kk‘ is {{ kk }}"
變量文件:
---
kk: lile
執行結果:
3:在hosts文件中定義
/etc/ansible/hosts 中定義組變量或者單個主機的變量
[db] 10.0.0.147 pp=ppppppp [db:vars] mm=heiheihei
---
- hosts: db
tasks:
- name: test hosts group var
debug: msg="The Variable ‘mm‘ is {{ mm }}"
- name: test singer var
debug: msg="The Variable ‘pp‘ is {{ pp }}"
執行結果:
4:在/etc/ansible目錄下創建group_vars與hosts_vars
mkdir /etc/ansible/group_vars
mkdir /etc/ansible/hosts_vars
想定義組變量時,以組的名字命名創建一個文件,然后把變量寫在里面
如:定義db組的變量 在/etc/ansible/group_vars這里創建db文件 vim db
---
tt: yyyyyyyyyyyyy
然后就可以使用了
---
- hosts: db
tasks:
- name: test /etc/ansible/group_vars
debug: msg="The variable ‘tt‘ is {{ tt }}"
執行結果:
5:在host_vars中是同樣的,只有一需要定義變量的那台主機命名就可以。
6:hostvars從一台遠程主機獲取另一台遠程主機的變量
方式一:
---
- hosts: db
tasks:
- debug: msg="Variable ‘tt‘ is set to {{ hostvars[‘10.0.0.146‘][‘ttt‘] }}"
輸出結果:
方式二:
---
- hosts: db
tasks:
- name: test hostvars
debug: var=hostvars[‘10.0.0.146‘][‘ttt‘]
輸出結果:
