在Ansible playbook中,可以使用变量文件来代替显式循环。下面是一个简单的示例,其中使用了变量文件和with_items来循环:
在vars.yml文件中定义变量:
---
server_names:
- server1
- server2
- server3
在playbook.yml文件中使用变量和循环:
---
- hosts: web
vars_files:
- vars.yml
tasks:
- name: create directory for each server
file:
path: "/srv/www/{{ item }}/public_html"
state: directory
with_items: "{{ server_names }}"
这个playbook将为server1,server2和server3创建一个目录。在这个示例中,with_items用于循环,它使用vars.yml文件中定义的变量server_names。
可以将该文件传递为参数使用命令行指向变量文件的路径即可进行运行:
ansible-playbook -i inventory.yml playbook.yml --extra-vars "@vars.yml"