ansible 初始化系统分区格式化
作者: 张首富
时间: 2021-05-13
wx: y18163201
创建分区并进行格式化
tasks:
- name: '未分区磁盘'
parted: device=/dev/{{item.key}} number=1 state=present
when: not item.value.partitions
register: status
with_dict: "{{ ansible_devices }}"
- name: '格式化磁盘'
filesystem: dev=/dev/{{item.item.key}}1 fstype=xfs
when: item.changed != false
with_items: "{{ status.results }}"
首先通过ansible fact检测机器中的磁盘的parttions,如果partitions就是实际磁盘的分区数,分过区的partitions里是有值的,没分过区的磁盘partitions 值未空。依此来判断磁盘是否被分过区。
如果没有分区我们就把这个磁盘分1个区。并把状态记录下来。
格式化的时候,如果上面的分区状态是成功的,那么说明,这个盘是刚分过区的,那么我就执行格式化。
格式化之后我们需要指定挂载操作,挂载操作要调用mount
模块来实现
ansible mount 模块用法
常用参数
- path: 挂载点,必须
- src: 挂载的源分区,必须
- fstype:磁盘分区格式,必须
- state:对应的动作是什么
mounted: 主动将设备挂载,并在 /etc/fstab 里面添加永久挂载信息,如果挂载点不存在,挂载点将会被创建
present: 只在 /etc/fstab 里面做记录,并不会挂载
unmounted: 卸载挂载点,但是并不会在 /etc/fstab 里面把永久挂载信息去掉
absent:取消挂载,并在/etc/fstab 对应的记录也删除
remounted:指定设备将被重新挂载
- opts: 挂载的选项。
挂载
tasks:
- name: "mount device"
mount:
path: /data
src: /dev/sdb1
fstype: ext4
state: mounted
卸载
tasks:
- name: 'umount device'
mount:
path: /data
state: umounted