使用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		##存在时
相关推荐
垚垚学技术_聚焦云原生1 天前
Ansible Role 生产环境标准目录结构与规范化实践
java·elasticsearch·ansible
垚垚学技术_聚焦云原生2 天前
Ansible Playbook 实战:批量配置 Linux 主机
ansible
迷茫的大专生14 天前
服务器部署与 MySQL 运维学习笔记:从 Ansible 到高可用与性能优化
mysql·nginx·ansible·mysql优化·keepalive
杜子不疼.16 天前
Ansible 批量部署 Node Exporter:从单机安装流程到远程主机统一执行
ai·ansible
运维全栈笔记17 天前
Ansible 自动化 Nginx 集群部署实战:动态 Inventory、滚动发布与 Role 工程化
nginx·自动化·ansible
User_芊芊君子22 天前
让异构增量同步飞起来-KFS全链路并行同步方案
运维·自动化·ansible
あ-24 天前
ansible-playbook安装seaweedfs三节点集群
ansible
Tassel_YUE1 个月前
非 ansible 主机批量执行命令方法:psssh 和 pscp(随手记)
linux·网络·ssh·scp·ansible
亿朝亿夕1 个月前
ansible安装
ansible
.柒宇.1 个月前
运维常见面试题_07_配置管理与监控(Ansible · Prometheus · Alertmanager)· 容器编排(Kubernetes)
运维·k8s·ansible·prometheus