1. 程式人生 > >二、Ansible中playbook的變量

二、Ansible中playbook的變量

yml -1 images span etc clas spa vim 變量

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

二、Ansible中playbook的變量