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
网友评论