通过ansible配置磁盘分区,格式化文件系统,创建逻辑卷
[devops@server1 ansible]$ cat my-disk.yml
---
- hosts: test
vars_files:
- storage_vars.yml ##引入变量,方便之后调用
tasks:
- name: Create a new primary partition #创建磁盘分区
parted:
device: /dev/sdb #设备名
number: "{{ item.number }}" #磁盘分区编号
part_start: "{{ item.start }}" #分区起始位置,如果创建一块,则不需要该参数,但是创建多块,则需要给定起始位置
part_end: "{{ item.end }}" #分区结束位置
state: present
loop: "{{ partitions }}"
- name: create volume group # 创建逻辑卷组
lvg:
vg: demo_vg
pvs: /dev/sdb1
- name: create a logical volume #创建逻辑卷
lvol:
vg: demo_vg
lv: "{{ item.name }}"
size: 100%VG #指定逻辑卷占用大小
resizefs: true
force: yes
state: present
loop: "{{ logicalvolumes }}"
when: item.name not in ansible_lvm["lvs"] 当逻辑卷已经存在时候,无需创建
- name: create a xfs filesystem #格式化文件系统
filesystem:
fstype: xfs
dev: /dev/demo_vg/test
- name: mount lvs #挂载
mount:
path: /var/www/html
src: /dev/demo_vg/test
fstype: xfs
state: mounted
opts: noatime
定义变量,如果需要再创建多个分区,只需要在这里继续增加变量即可
[devops@server1 ansible]$ cat storage_vars.yml
---
partitions:
- number: 1
start: 1MiB
end: 1GiB
- number: 2
start: 1GiB
end: 2GiB
logicalvolumes:
- name: test