Ansible中playbook的變量

轉自: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‘]
輸出結果:
技術分享
相關文章
相關標籤/搜索