1. 程式人生 > >ansible(四) Playbook中變數使用

ansible(四) Playbook中變數使用

Playbook中變數使用

 變數名:僅能由字母、數字和下劃線組成,且只能以字母開頭  變數來源:

  1.   ansible setup facts 遠端主機的所有變數都可直接呼叫
  2.   在/etc/ansible/hosts中定義

利用setup模組,簡單呼叫幾個變數

主機名變數:ansible_fqdn cpu變數:ansible_processor_vcpus 版本號變數:ansible_distribution_major_version

示例:編寫playbook實現目標主機生成   主機名.log   的空檔案

#vim vars.yml                 
---
- hosts: websrvs
  remote_user: root

  tasks:
    - name: create log file
      file: name=/data/{{ ansible_fqdn }}.log state=touch

 使用-e 進行自定義變數

ansible-playbook –e varname=value -e自定義變數的優先順序高於setup呼叫的變數 一次性對多個變數賦值:ansible-playbook -e 'ansible_fqdn="testfile" pname=samba'  vars.yml

對主機清單中的變數

---
- hosts: websrvs
  remote_user: root

  tasks:
    - name: create log file
      file: name=/data/{{ http_port }}.log state=touch
    - name: install package
      yum: name={{pname}}

#ansible-playbook -e pname=samba  vars.yml 對目標主機安裝samba,並分別生成對應http_port.log為檔名的空檔案

設定主機清單中的通用變數

 該設定為websrvs主機清單設定通用變數mark

在playbook中設定變數

還可將所有變數存放在一個專門的yml檔案中。

【優先順序次序:-e > playbook  >  yml  >  host】