此剧本仅需修改盘符变量,就可运行ansible-playbook剧本,可在几分钟内完成上百台服务器硬盘初始化。
目录
一、Ansible-playbook磁盘分区脚本
1、磁盘初始化剧本文件清单
2、磁盘初始化playbook
3、磁盘初始化变量
4、主机清单
5、磁盘初始化剧本(包含:分区、格式化、fstab挂载)
二、运行Ansible-Playbook
一、Ansible-playbook磁盘分区脚本
1、磁盘初始化剧本文件清单
###Ansible-playbook脚本目录
[root@node data_lvm]# tree
.
├── data_lvm.yml
├── group_vars
│ └── all
├── hosts
└── roles└── data_lvm└── tasks└── main.yml
2、磁盘初始化playbook
###Ansible-playbook运行脚本
[root@node data_lvm]# cat data_lvm.yml
---
- name: 创建LVM卷,初始化挂载硬盘hosts: allremote_user: rootgather_facts: noroles: - data_lvm
3、磁盘初始化变量
默认仅需修改device_name变量即可
###Ansible-playbook脚本变量
[root@node data_lvm]# cat group_vars/all
---
#磁盘名称,可使用fdisk查看
device_name: /dev/sda
number: 1
#vg卷组名称
vg_name: data_vg
#lv逻辑卷名称
lv_name: data_lv
#硬盘挂载目录
mount_path: /opt
#硬盘文件系统格式
filesystemtype: ext4
注:此实例仅适用新服务器硬盘初始化场景,此脚本会将新硬盘转换为PV盘,并将硬盘所有空间添加到LVM卷,如需扩容或多硬盘场景,请根据实际需求修改脚本。
4、主机清单
###Ansible主机清单
[root@node data_lvm]# cat hosts
[hosts]
10.0.14.12 ansible_ssh_port=22 ansible_ssh_user='root' ansible_ssh_pass='Admin@2022'
10.0.14.24 ansible_ssh_port=22 ansible_ssh_user='root' ansible_ssh_pass='Admin@2022'
10.0.14.21 ansible_ssh_port=22 ansible_ssh_private_key_file=/etc/ansible/ssh_key_file/21
10.0.14.33 ansible_ssh_port=22 ansible_ssh_private_key_file=/etc/ansible/ssh_key_file/33
5、磁盘初始化剧本(包含:分区、格式化、fstab挂载)
注:默认将所有硬盘空间添加到LV卷组
###Ansible-playbook磁盘分区脚本
[root@node data_lvm]# cat roles/data_lvm/tasks/main.yml
---
- name: 创建LVM类型PV分区parted:device: '{{ device_name }}'number: '{{ number }}'flags: [ lvm ]state: present- name: 创建VG组lvg:vg: '{{ vg_name }}'pvs: '{{ device_name }}{{ number }}'- name: 创建LVM逻辑卷lvol: vg: '{{ vg_name }}'lv: '{{ lv_name }}'size: +100%FREE- name: 格式化逻辑卷filesystem:fstype: '{{ filesystemtype }}'dev: '/dev/{{ vg_name }}/{{ lv_name }}'- name: 逻辑卷挂载mount:path: '{{ mount_path }}'src: '/dev/{{ vg_name }}/{{ lv_name }}'fstype: '{{ filesystemtype }}'state: mounted
二、运行Ansible-Playbook
[root@node data_lvm]# ansible-playbook -i hosts data_lvm.yml