使用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		##存在时
相关推荐
vivo互联网技术4 小时前
vivo Pulsar 万亿级消息处理实践(4)-Ansible运维部署
大数据·ansible·自动化运维·pulsar·消息处理·分布式消息中间件
朱小弟cs617 小时前
Orange的运维学习日记--41.Ansible基础入门
linux·运维·学习·ci/cd·自动化·ansible·devops
IT成长日记20 小时前
【自动化运维神器Ansible】playbook案例解析:Tags组件实现任务选择性执行
运维·自动化·ansible·playbook·tags
IT成长日记20 小时前
【自动化运维神器Ansible】playbook实践示例:HTTPD安装与卸载全流程解析
运维·自动化·ansible·playbook·httpd·案例解析
天翼云开发者社区6 天前
Ansible部署Node_exporter
ansible·应用自动化运维
ZZZKKKRTSAE7 天前
RHCE认证题解
linux·运维·服务器·ansible·rhce·rhel9·红帽
求知若渴,虚心若愚。10 天前
ansible.cfg 配置文件生成
java·服务器·ansible
IT成长日记11 天前
【自动化运维神器Ansible】YAML支持的数据类型详解:构建高效Playbook的基石
运维·自动化·ansible·数据类型·yaml·playbook
IT成长日记11 天前
【自动化运维神器Ansible】YAML语法详解:Ansible Playbook的基石
运维·自动化·ansible·yaml