playbook中引用变量

文字性描述可能不大好理解,咱们用一个小实验操作估计方面些.

vim    users.yml

users: 
  - name: zhangsan
    gender: female
    files:
      - file1
      - file2
  - name: lisi
    gender: male
    files:  
      - file3
      - file4
      - file5

1.获取users当中用户zhangsan(张三)的第一个文件 

vim   user_vars.yml 

- hosts: 10.0.0.2
  vars_files:
   - users.yml
  tasks:
   - debug:
        msg: " {{ users[0].files[0] }} "      //注意,msg的要求是"{{   }}"     users[0]表示第一个用户,file[0]表示第一个文件.
 

[root@ren001 ansible]# ansible-playbook user_vars.yml
PLAY [10.0.0.2] ****************************************************************

TASK [Gathering Facts] *********************************************************
ok: [10.0.0.2]

TASK [debug] *******************************************************************
ok: [10.0.0.2] => {
    "msg": " file1 "       // 打印出来,第一个用户中的第一个文件是   "file1".
}

PLAY RECAP *********************************************************************
10.0.0.2                   : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

以此类推,获取第二个用户的第二个文件

[root@ren001 ansible]# ansible-playbook user_vars.yml
PLAY [10.0.0.2] ****************************************************************

TASK [Gathering Facts] *********************************************************
ok: [10.0.0.2]

TASK [debug] *******************************************************************
ok: [10.0.0.2] => {
    "msg": " file1 "
}

TASK [debug] *******************************************************************
ok: [10.0.0.2] => {
    "msg": " file4 "
}
 

那想要获取张三的性别,李四的全部文件呢?

vim     user_vars.yml

- hosts: 10.0.0.2
  vars_files:
   - users.yml
  tasks:
   - debug:
       msg: " {{ users[0].gender }} "
   - debug:
       msg: " {{ users[1].files }} "
 

[root@ren001 ansible]# vim user_vars.yml
[root@ren001 ansible]# ansible-playbook user_vars.yml
PLAY [10.0.0.2] ****************************************************************

TASK [Gathering Facts] *********************************************************
ok: [10.0.0.2]

TASK [debug] *******************************************************************
ok: [10.0.0.2] => {
    "msg": " female "
}

TASK [debug] *******************************************************************
ok: [10.0.0.2] => {
    "msg": " [u'file3', u'file4', u'file5'] "
}

发布了33 篇原创文章 · 获赞 4 · 访问量 3763

猜你喜欢

转载自blog.csdn.net/linux2422988311/article/details/100061829