ansible的lvg和lvol模块

parted分区模块

实战环境的场景是批量分区和批量扩容

参数解释
align配置分区的alignment(对齐)
device块设备(磁盘路径)
flags分区的flags
number分区编号
part_start起始扇区
part_end分区增加多少
stateCreates/removes
unitSize的unit信息

示例

- name: 新建10G分区
  parted:
  	device: /dev/vdb
  	number: 1
  	state: present
  	part_end: 10GB

lvg模块的参数

参数解释
pesize指定pe的大小
pvs要加载的pv(物理卷)
vgvg名
state创建present或删除absent

lvol模块的参数

参数解释
lvlv的名字
resizefs指定lv的大小(扩容)
shrink缩容
size创建时指定的大小
resizefs调整大小yes
force强制调整yes
snapshot快照

创建lvm

---
- hosts: node2
  tasks:
    - name: 新建第一个磁盘分区
      parted:
        device: /dev/vdb
        number: 1
        state: present
        part_end: 1GiB
    - name: 新建第二个分区
      parted:
        device: /dev/vdb
        number: 2
        state: present
        part_start: 1GiB
        part_end: 3GiB

    - name: 新建vg
      lvg:
        vg: vg1
        pvs: /dev/vdb1
        
    - name: 新建lv
      lvol:
        vg: vg1
        lv: lv1
        # 指定2g大小
        size: 2g

filesystem模块

分区格式化模块

参数解释
dev块设备名称(磁盘路径)
fstype分区格式
resizefs将文系统系统大小增加到磁盘的大小

示例代码

- name: 创建xfs文件系统
  filesystem:
  	fstype: xfs
  	dev: /dev/vdb1

mount模块

分区挂载模块

参数解释
fstype分区格式
opts挂载参数
path挂载点
src挂载的设备(uuid)
statepresent(临时挂载)mounted(持久挂载)

示例代码

- name: 挂载示例
  mount:
  	path: /data
  	src: UUID=23d72cb3-da1d-4e40-a99f-bfad92caba7c
  	fstype: xfs
  	state: present

存储管理综合练习

变量文件storage_vars.yml

---
partitions:
  - number: 1
    start: 1MiB
    end: 257MiB

volume_groups:
  - name: apache-vg
    devices: /dev/vdb1

logical_volumes:
  - name: content-lv
    size: 64M
    vgroup: apache-vg
    mount_path: /var/www

  - name: logs-lv
    size: 128M
    vgroup: apache-vg
    mount_path: /var/log/httpd

执行剧本storage.yml

---
- name: 存储配置演示
  hosts: webservers
  vars_files:
    - storage_vars.yml
  tasks:
    - name: 对磁盘/dev/vdb进行分区
      parted:
        device: /dev/vdb
        number: "{{ item.number }}"
        part_start: "{{ item.start }}"
        part_end: "{{ item.end }}"
        state: present
      loop: "{{ partitions }}"
     # 扩容的话,加分区,再把心分区加到vg,然后扩容lv即可

    - name: 创建vg
      lvg:
        vg: "{{ item.name }}"
        pvs: "{{ item.devices }}"
      loop: "{{  volume_groups }}"


    - name: 创建lv
      lvol:
        vg: "{{ item.vgroup }}"
        lv: "{{ item.name }}"
        size: "{{ item.size }}"
      loop: "{{ logical_volumes }}"
      # 判断lvs中不存在这个lv才创建这个lv
      when: item.name not in ansible_lvm["lvs"]

    - name: 对lv分区进行格式化
      filesystem:
        fstype: xfs
        dev: "/dev/{{ item.vgroup }}/{{ item.name }}"
      loop: "{{ logical_volumes }}"

    - name: 调整lv分区的容量
      lvol:
        vg: "{{ item.vgroup }}"    
        lv: "{{ item.name }}"
        # 如果要扩容,调大size值即可
        size: "{{ item.size }}"
        # 是否调整容量
        resizefs: yes
        force: yes
      loop: "{{ logical_volumes }}"

    - name: 持久挂载lv分区到挂载点
      mount:
        path: "{{ item.mount_path }}"
        src: "/dev/{{ item.vgroup }}/{{ item.name }}"
        fstype: xfs
        opts: noatime
        state: mounted
      loop: "{{ logical_volumes }}"

第八题

在这里插入图片描述

---
- name: 创建逻辑卷
  hosts: all
  tasks:
    - block:
      - name: 创建逻辑卷1500M
        lvol:
          vg: research
          lv: data
          size: 1500

      rescue:
        - name: 提示无法创建该大小的逻辑卷
          fail:
            msg: Could not create logical volume of that size
          when: ansible_lvm.lvs.data is undefined
          # 如果lv.data没有被定义就打印错误提示:无法创建该大小的逻辑卷

        - name: 创建逻辑卷800M
          lvol:
            vg: research
            lv: data
            size: 800
          when: ansible_lvm.vgs.research is defined
          # 如果vg.research被定义了才执行创建800M
  
            
        - name: 提示卷组不存在
          fail:
            msg: Volume group does not exist
          when: ansible_lvm.vgs.research is undefined
          # 如果vg.research没有被定义就提示卷组不存在
      always:
        - name: mkfs ext4
          filesystem:
            fstype: ext4
            dev: /dev/research/data
          when: ansible_lvm.lvs.data is defined
          # 如果lv.data被定义了就执行格式化
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值