Ansible-磁盘管理模块整合
在进行磁盘分区之前应查看磁盘的空余状况
可以使用lsblk
命令。在使用自动化工具时,优先编辑脚本识别有效磁盘
五个磁盘分类模块-parted、lvg、lvol、filesystem、mount
Parted模块
- 这个模块允许使用
parted
命令行工具配置块设备分区。 - 可以进行磁盘的管理
关键字
device 指定硬盘设备路径 比如 /dev/vdb
label 指定分区表类型 gpt mbr
number 指定分区序号
part_start 分区起始位置
part_end 分区结束位置
state 指定操作方式 present创建 absent删除 info查信息(默认)
flage 指定的分区类型
在主机中的使用
- name: create vgm for prod
parted:
device: /dev/sdb
number: 1
state: present
part_end: "20%"
resize: true
flags: [ lvm ]
when: inventory_hostname in groups['prod']
Lvg模块
关键字
vg 卷组名称
state present创建(默认) 或者 absent删除
force 在删除时使用。yes表示允许删除带逻辑卷的卷组,默认为false
pvs 指定物理卷
pesize 设定pe大小。默认为4
在主机中的使用
- name: create vg research 100%
lvg:
vg: research
pvs: /dev/sdb1
pesize: 16
Lvol模块
关键字
lv 定义逻辑卷名称
vg 逻辑卷的空间来自哪个vg
state present创建(默认) 或者 absent删除
size 定义逻辑卷大小。默认单位MB
force 删除和压缩逻辑卷大小。默认为no。需要时开启,避免磁盘的损坏
在主机中的使用
- name: create lvm 1500M
lvol:
vg: research
lv: data
size: 1500
Filesystem模块
关键字
dev 要格式化的分区
fstype 文件系统类型 比如 ext4 xfs
force 强制格式化,如果以前分区中有数据
在主机中的使用
- name: create filesystem
filesystem:
fstype: xfs
dev: /dev/research/data
Mount模块
关键字
path: 挂载点
src: 挂载的文件
fstype: 挂载的硬盘类型
opts: 传递给mount命令的参数
ro:用唯读模式挂上
rw:用可读写模式挂上
sync:在同步模式下执行
atime、noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。
auto、noauto:打开/关闭自动挂上模式。
remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
state: present 开机时挂载,仅将挂载配置写入/etc/fstab
mounted 挂载设备,并将配置写入/etc/fstab
unmounted 卸载设备,不会清除/etc/fstab写入的配置
absent 卸载设备,并清理/etc/fstab写入的配置
在主机中的使用
- name: Mount up device by labe
mount:
path: /dev/research/data
src: /mnt/research_data
state: present
整合
---
- name: create resreach lvm
hosts: all
ignore_errors: yes
tasks:
- name: show disk message
shell: 'lsblk'
register: disk_info
- name: create vgm for dev,test
parted:
device: /dev/sdb
number: 1
state: present
part_start: 1MiB
part_end: 2000MiB
resize: true
register: vgm_info
when: "inventory_hostname in {{ item }}"
with_items:
- groups['dev']
- groups['test']
- name: create vgm for prod
parted:
device: /dev/sdb
number: 1
state: present
part_end: "20%"
resize: true
flags: [ lvm ]
when: inventory_hostname in groups['prod']
- name: create vg research 100%
lvg:
vg: research
pvs: /dev/sdb1
pesize: 16
- block:
- name: create lvm 1500M
lvol:
vg: research
lv: data
size: 1500
register: lvm_info
rescue:
- name: show vgm_info
debug:
msg: "Could not create logical volume of that size"
- name: create lvm 800M
lvol:
vg: research
lv: data
size: 800
- name: show device size
debug:
msg: "{{ ansible_devices.sdb.size }}"
always:
- name: create filesystem
filesystem:
fstype: xfs
dev: /dev/research/data
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤