使用ansible剧本进行lvm分盘

使用 Ansible 剧本(Playbook)进行 LVM 分区管理是一种自动化的方式,可以帮助管理员在多台主机上批量管理逻辑卷。

部署环境

3台主机,添加硬盘

复制代码
ansible-galaxy collection install community.general      联网执行,下载兼容parted模块的模块吧

显示:
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/download/community-general-7.2.1.tar.gz to /root/.ansible/tmp/ansible-local-33201jai89ehw/tmplhtqs594/community-general-7.2.1-kh48eyd5
Installing 'community.general:7.2.1' to '/root/.ansible/collections/ansible_collections/community/general'
community.general:7.2.1 was installed successfully

操作

1.执行前奏脚本(格式非常重要,格式不对无法执行,)

复制代码
- name: create volume group                   #任务名
  hosts: group1                            
  tasks:
    - name: Create partition for LVM        
      community.general.parted:                 #引用模块
        device: /dev/nvme0n2                   #硬盘设备路径
        number: 1						 # 分区序号
        flags: [ lvm ]								#分区标记
        state: present									#操作方式present创建 absent删除 info查信息(默认
        part_start: 1MiB                            #分区起始位置
        part_end: 2GiB								#分区结束位置
    - name: create research vg			
      lvg:
        vg: research												#卷组名称
        pvs: /dev/nvme0n2p1										#指定物理卷
- name: create volume group
  hosts: group2
  tasks:
    - name: Create partition for LVM
      community.general.parted:
        device: /dev/nvme0n2
        number: 1
        flags: [ lvm ]
        state: present
        part_start: 1MiB
        part_end: 1GiB
    - name: create research vg
      lvg:
        vg: research
        pvs: /dev/nvme1n2p1

2.创建脚本lv.yml 按照以下的格式 data(lvm逻辑卷名称)(research卷组名称)

复制代码
---
- name: create lv
  hosts: all
  tasks:
    - name: error  ##当不存在vg时报错
      debug:
        msg: Volume group done not exist
      when: ansible_facts['lvm']['vgs']['research'] is undefined

    - name: create lv
      block:  ##创建1000M的lv
        - name: create 1500m lv
          lvol:
            vg: research
            lv: data
            size: 1500m
          when: ansible_facts['lvm']['vgs']['research'] is defined
      rescue:  ##创建1000M失败时,先报错,再创建800M的lv
        - name: debug
          debug:
            msg: Could not create logical volume of that size
          when: ansible_facts['lvm']['vgs']['research'] is defined
        - name: create 800m lv
          lvol:
            vg: research
            lv: data
            size: 800m
          when: ansible_facts['lvm']['vgs']['research'] is defined
      always:  ##对创建的lv进行格式化
        - name: filesystem
          filesystem:
            fstype: ext4
            dev: /dev/research/data
          when: ansible_facts['lvm']['vgs']['research'] is defined

解析

复制代码
---
- name: create lv
  hosts: all	##主机
  tasks:
    - name: error  ##当不存在vg时报错
      debug:
        msg: Volume group done not exist		##显示的信息
      when: ansible_facts['lvm']['vgs']['research'] is undefined		##不存在时

    - name: create lv
      block:  ##创建1000M的lv
        - name: create 1500m lv
          lvol:
            vg: research		##卷组名
            lv: data			##逻辑卷名
            size: 1500m		##内存大小
          when: ansible_facts['lvm']['vgs']['research'] is defined	##存在时
      rescue:  ##创建1000M失败时,先报错,再创建800M的lv
        - name: debug
          debug:
            msg: Could not create logical volume of that size		##显示的信息
          when: ansible_facts['lvm']['vgs']['research'] is defined
        - name: create 800m lv			##创建800m的lv
          lvol:
            vg: research      ##卷组名
            lv: data			##逻辑卷名
            size: 800m		##内存大小
          when: ansible_facts['lvm']['vgs']['research'] is defined	##存在时
      always:  ##对创建的lv进行格式化
        - name: filesystem
          filesystem:
            fstype: ext4		##ext4格式
            dev: /dev/research/data			##dev文件
          when: ansible_facts['lvm']['vgs']['research'] is defined		##存在时
相关推荐
AquaPluto1 天前
Ansible-Playbook详解
ansible·playbook·roles
chairon8 天前
Ansible:playbook的高级用法
linux·运维·服务器·ansible·apache
树下一少年8 天前
ansible+docker+docker-compose快速部署4节点高可用minio集群
docker·容器·ansible·docker-compose·minio集群
千航@abc9 天前
Ansible 实战:Roles,运维的 “魔法函数”
ansible·playbook·roles·角色·模版·剧本
一个高效工作的家伙9 天前
ansible可视化自动化平台-semaphore
ansible
树下一少年9 天前
通过ansible+docker-compose快速安装一主两从redis+三sentinel
redis·docker·ansible·sentinel·docker-compose
独隅10 天前
针对Ansible执行脚本时报错“可执行文件格式错误”,以下是详细的解决步骤和示例
运维·开发语言·ansible·lua·lua5.4
大小科圣11 天前
Ansible playbook
ansible
大小科圣11 天前
ansible条件判断及循环
ansible
狂奔solar12 天前
ansible-playbook 写arm版达梦7数据库的一键安装脚本
ansible