Ansible企业运维实例(三)—批量硬盘初始化

           此剧本仅需修改盘符变量,就可运行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: all
  remote_user: root
  gather_facts: no
  roles: 
    - 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 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值