自动分区格式化、挂载一条龙

2019-06-13  本文已影响0人  迷茫_小青年
  tasks:
  - name: u'删除分区磁盘'
    parted: device=/dev/{{item.key}} number=1 state=absent
    when:  item.key != "sdk"
    with_dict: "{{ ansible_devices }}"

  - name: u'创建分区磁盘'
    parted: device=/dev/{{item.key}} number=1 state=present label=gpt
    when:  item.key != "sdk"
    register: status
    with_dict: "{{ ansible_devices }}"

  - name: u'格式化磁盘'
    filesystem: dev=/dev/{{item.item.key}}1 fstype=xfs force=true
    when:  item.item.key != "sdk"
    with_items: "{{ status.results }}"

  - name: u'查找磁盘'
    find:
      paths: /dev
      patterns: "sd[a-z]"
      file_type: any
    register: disks

  - name: u'挂载磁盘'
    mount:
      path: "/hdd{{ item.0 + 1 }}"
      src: "{{ item.1.path }}1"
      fstype: xfs
      opts: "defaults,noatime,nobarrier"
      state: mounted
    when: item.1.path != '/dev/sdk'
    loop: "{{ lookup('indexed_items', disks.files) }}"

说明下:/hdd{{ item.0 + 1 }} 这里+1的目的是loop里的index是从0开始的。而我们想从hdd1目录开始挂载,所以需要加1。

另外如果你的ansible是2.8以后的版本。有更简便的方法

  - name: u'挂载磁盘'
    mount:
      path: "/hdd{{ ansible_loop.index }}"
      src: "{{ item.path }}1"
      fstype: xfs
      opts: "defaults,noatime,nobarrier"
      state: mounted
    when: item.path != '/dev/sdk'
    loop: "{{ disks.files }}"
    loop_control:
      extended: yes
上一篇 下一篇

猜你喜欢

热点阅读