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‘]
輸出結果:
技術分享
 
 
 
 
      
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM