如何使用ansible-playbook输出字母a到z

时间:2019-05-23 07:55:58

标签: ansible

我希望以最简单的方式获得字母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 }}"

看起来不错,但不聪明。

1 个答案:

答案 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"
}