使用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		##存在时
相关推荐
码上上班11 小时前
Ansible课程
ansible
至乐活着4 天前
Ansible自动化运维实战:从零部署高可用Nginx+静态网站集群
ansible·自动化运维·devops·playbook·配置管理
John Song6 天前
ansible-playbook常用的检查命令
windows·ansible
明航咨询_贾老师9 天前
RHCA Ansible高级自动化(DO374)认证信息整理
运维·自动化·ansible·rhca·红帽认证
有毒的教程13 天前
Ansible批量操作自动化完整教程:批量部署服务、配置同步、软件更新实战
运维·自动化·ansible
Hy行者勇哥18 天前
用Cursor智能编写Ansible/Terraform脚本,打通CI/CD链路
ci/cd·ansible·terraform
芷栀夏20 天前
飞牛NAS怎么部署Immich?家庭照片自动备份与远程访问教程
服务器·nginx·ansible
悠然南风1 个月前
Ansible常见模块总结及LDAP Role 编写与调试
ansible
祺风挽楠1 个月前
ansible编辑
网络·ansible
芳心粽伙饭1 个月前
Ansible课后作业
ansible