d_little.ansible_role_aix_lvm

ansible-role-aix-lvm

注意:此角色正在重构中。目前不建议用于生产环境。

这是一个用于管理 AIX 服务器上卷组(VG)、逻辑卷(LV)和文件系统(FS)的 Ansible 角色。它目前主要用于构建和创建新环境,虽然可以扩展单个文件系统,但不是最适合这个工作的。它在将多个物理卷(PV)定义为目标主机上的所有卷组(VG)、逻辑卷(LV)和文件系统(FS)方面表现优异。此角色基于 @mrlesmithjr 的优秀 ansible-manage-lvm 角色。

注意

  • 可以用于创建和销毁 LVM 组和卷。
    • 我目前不建议使用它来处理调整大小或修改,尚未完全测试。
  • 旨在定义一个“整体”环境;它并不适合创建临时的 LV/FS 等。
    • 主要用例是定义初始构建时的整个 AIX 服务器存储。
  • 暂不支持处理远程/NFS 挂载点。
  • 如果您有一个“过挂”的文件系统,它将失败,因为 aix_filesystem 模块在挂载时不会创建目录。
    • 例如:/foo/ 和 /foo/bar/ 都是文件系统,并且在挂载之前已创建。
    • /foo/ 已挂载,而 /foo/bar/ 目录“消失”。
    • 尝试挂载 /foo/bar/ 时会失败,因为该目录不存在。

要求

在使用此角色之前,必须确定 LVM 设置的设备/磁盘。

注意

  • 确保选择正确的设备/磁盘。
  • 若要创建 VG 而不创建 LV,请将 lvname 的值定义为 None,如下例所示。

角色变量结构

我们定义了一个描述所需 VG 的字典列表。

变量 默认值 说明
manage_lvm false 仅为“安全”标记,确保应该运行此角色。如果为 false,则此角色不会管理 LVM
vglist(必需) - 一个 vglist 对象的列表,定义如下

vglist

以下是 vglist 选项的完整概述。默认值来自 aix_lvg 模块文档注意:此角色中的默认值将 始终 使用模块默认值;如果 aix_lvg 模块更改了默认值,此文档 可能未能及时更新。请在默认值更改且此文档未更新时记录一个问题或 PR。

变量 默认值 说明
vgname(必需) - VG 的名称
disks(必需) - PV 设备名称列表
force false 强制创建 VG
ppsize - VG 物理分区的大小
state present absentpresent。如果为 absent,则所有底层 FS 和 LV 必须首先从系统中删除。
vg_type normal VG 类型;可为 bignormalscalable 之一
lvlist - lvlist 对象,定义如下。可以设置任意数量。

lvlist

以下是 lvlist 选项的完整概述。可以在上面的 vglist 对象中定义任意数量的这些。默认值来自 aix_lvol 模块文档aix_filesystem。虽然可以在没有现有 LV 的情况下创建 FS,但此角色采用最佳实践方法,要求每个 FS 在创建之前都要有父 LV。 注意:此角色中的默认值将 始终 使用模块默认值;如果 aix_lvolaix_filesystem 模块更改了默认值,此文档 可能未能及时更新。请在默认值更改且此文档未更新时记录一个问题或 PR。

变量 默认值 说明
lvname(必需) - LV 的名称
lvstate present presentabsent 之一。如果为 absent,LV 和任何关联的 FS 将被移除。
lvcopies 1 LV 的副本数量。最大为 3
lvtype jfs2 创建的 LV 类型:[jfs2jfspaging 等]
lvopts - 传递给 mklv 的自由格式选项 了解更多
lvpolicy maximum 设置物理卷的分配策略,选择 [maximumminimum] 之一。
lvpvs - 要在主机 VG 中使用的 PV 列表。
lvsize - 逻辑卷的大小,使用 [MGT] 单位。
fsaccount_subsystem false FS 是否由会计子系统处理。布尔值。
fsattributes "agblksize='4096',isnapshot='no'" 使用逗号分隔的文件系统属性
fsauto_mount false 文件系统在系统重启时自动挂载。
fsfilesystem - 挂载点,即文件系统将被挂载的目录。如果 fsstate 不为 absent,则该项为必填。
fsstate present 取值为 [presentabsentmountedunmounted] 之一。如果想要创建一个没有挂载 FS 的 LV,则将 fsstate 设置为 absent
fsmount_group - FS 挂载组
fspermissions rw FS 权限;取值为 [rwro] 之一。

依赖

示例剧本

小型、简单的实验 VG

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_exp1
        disks:
          - hdisk4
        force: true
        lvlist:
          - lvname: lv_exp1
            lvcopies: 1
            lvsize: 5G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/exp1
          - lvname: lv_exp2
            lvcopies: 1
            lvsize: 10G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/exp2
  roles:
    - role: d-little.aixlvm
  tasks:

一个 VG,多条 LV

注意:这是此角色的正常用例

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test1
        disks:
          - hdisk10
          - hdisk11
        lvlist:
          - lvname: lv_test1_1
            lvcopies: 2
            lvsize: 5G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/test1_1
          - lvname: lv_test1_2
            lvcopies: 2
            lvsize: 10G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/test1_2
  roles:
    - role: d-little.aixlvm
  tasks:

为空的 VG 没有 LV

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test2_1
        disks:
          - hdisk20
          - hdisk21
        lvlist:
          None
      - vgname: vg_test2_2
        disks:
          - hdisk22
          - hdisk23
        lvlist:
          None
  roles:
    - role: d-little.aixlvm
  tasks:

一个 VG,一个 LV,所有变量已定义

这不是正常用例,但以防您想要更改所有内容

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test3
        force: true
        disks:
          - hdisk30
          - hdisk31
        ppsize: 128
        state: present
        vg_type: big
        lvlist:
          - lvname: lv_test3
            lvstate: present
            lvcopies: 2
            lvopts: aaaa
            lvpolicy: maximum
            lvpvs: hdisk30, hdisk31
            lvsize: 50G
            lvstate: present
            fsaccount_subsystem: false
            fsattributes: aaaaa
            fsauto_mount: true
            fsfilesystem: /mnt/test3_1
            fsstate: mounted
            fsmount_group: aaaa
            fspermissions: rw
  roles:
    - role: ansible-manage-lvm
  tasks:

作者

  • David Little - 初始工作 - d-little

许可

MIT

致谢

关于项目

Role to manage LVM Groups/Logical Volumes on IBM AIX. Can be used to create, extend ~or resize~ VGs, LVs, and FSs.

安装
ansible-galaxy install d_little.ansible_role_aix_lvm
许可证
mit
下载
103
拥有者