升木 发表于 2018-1-3 06:00:24

ansible 列表变量、字典变量

  ansible的变量不仅可以是单个的值,也可以为列表。
  

- hosts: localhost  gather_facts: no
  vars:
  - list:
  tasks:
  - name: echo
  debug: msg="{{ list }}"
  

  输出为:
  

TASK ********************************************************************  
ok: => {
  "msg": [
  1,
  2,
  3
  ]
  
}
  

  

结合循环
  结合循环,这个特性就变得很有用;以参数传递列表给playbook,不用在playbook中固定循环的次数与内容。
- hosts: localhost  gather_facts: no
  vars:
  - list:
  tasks:
  - name: loop
  debug: msg="{{ item }}"
  with_items: '{{list}}'
  输出为:
  

TASK ********************************************************************  
ok: => (item=1) => {
  "item": 1,
  "msg": 1
  
}
  
ok: => (item=2) => {
  "item": 2,
  "msg": 2
  
}
  
ok: => (item=3) => {
  "item": 3,
  "msg": 3
  
}
  

字典变量
  变量也可以为字典:
  

- hosts: localhost  gather_facts: no
  vars:
  - lists:
  list1:
  list2:
  tasks:
  - name: loop
  debug: msg="{{ item }}"
  with_items: '{{lists["list1"]}}'
  

TASK ********************************************************************  
ok: => (item=1) => {
  "item": 1,
  "msg": 1
  
}
  
ok: => (item=2) => {
  "item": 2,
  "msg": 2
  
}
  
ok: => (item=3) => {
  "item": 3,
  "msg": 3
  
}
  
页: [1]
查看完整版本: ansible 列表变量、字典变量