在Ansible中,使用Map变量时可能需要为每个键指定不同的值。例如,我们可以使用以下Map变量:
vars:
users:
user1: /home/user1
user2: /home/user2
user3: /opt/user3
但是如果我们想为每个用户设置不同的Shell,则可以使用类似于以下方式的Map变量:
vars:
users:
- name: user1
home: /home/user1
shell: /bin/bash
- name: user2
home: /home/user2
shell: /bin/sh
- name: user3
home: /opt/user3
shell: /bin/zsh
在这种情况下,我们需要在Playbook中使用with_items
关键字来设置每个用户的值。示例代码如下:
- name: Create users
user:
name: "{{ item.name }}"
home: "{{ item.home }}"
shell: "{{ item.shell }}"
with_items: "{{ users }}"
这将遍历每个用户并将其值分配给item
变量,然后将其传递给user
模块。