我希望以最简单的方式获得字母a到z。 无需手动将a键入到z,而是设置一个变量并将其循环。
我的系统中有22个磁盘。他们的是/ dev / sda到/ dev / sdw。 我想使用ansible-playbook依次对它们进行分区和格式化。所以我想将字母a-w作为变量操作。
---
- hosts: hadoop
vars:
test: [a, b, c, d]
tasks:
- parted:
device: "/dev/sd{{ item }}"
number: 1
state: present
with_items:
- "{{ test }}"
看起来不错,但不聪明。
答案 0 :(得分:0)
您不需要遍历字母表中的字母。只需使用find
模块来查找与模式sd[a-z]
匹配的磁盘设备。例如:
---
- hosts: localhost
gather_facts: false
tasks:
- name: get available devices
find:
paths: /dev
patterns: "sd[a-z]"
file_type: any
register: disks
- debug:
msg: "{{ item.path }}"
loop: "{{ disks.files }}"
loop_control:
label: "{{ item.path }}"
在我的系统上,输出:
TASK [debug] **********************************************************************************************************************************************************************************
ok: [localhost] => (item=/dev/sdc) => {
"msg": "/dev/sdc"
}
ok: [localhost] => (item=/dev/sdb) => {
"msg": "/dev/sdb"
}
ok: [localhost] => (item=/dev/sda) => {
"msg": "/dev/sda"
}