d_little.ansible_role_aix_lvm

ansible-role-aix-lvm

注意: このロールは現在、重度の工事中です。まだ本番使用には推奨できません。

AIXサーバー上のボリュームグループ、論理ボリューム、ファイルシステムを管理するための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設定のメンバーとなるデバイス/ディスクは、事前に特定する必要があります。

注意:

  • 正しいデバイス/ディスクを選択してください。
  • LVを作成せずにVGを作成する場合、lvnameの値をNoneと定義します。以下の例に従ってください。

ロール変数構造

必要なVGを説明する辞書のリストを定義します。

変数 デフォルト コメント
manage_lvm false このロールを実行するべきかの安全マーク。falseの場合、このロールでLVMは管理されません。
vglist (必須) - 以下に定義されたvglistオブジェクトのリスト

vglist

vglistオプションの詳細な概要は以下の通りです。デフォルトはaix_lvgモジュールのドキュメントに従います。 注意: このロールのデフォルト値は常にモジュールのデフォルトを使用します。aix_lvgモジュールがデフォルト値を変更した場合、このドキュメントが最新でない可能性があります。aix_lvgの値が変更され、このドキュメントが更新されていない場合は、問題やプルリクエストをログしてください。

変数 デフォルト コメント
vgname (必須) - VGの名前
disks (必須) - PVデバイスの名前のリスト
force false VGを強制的に作成します
ppsize - VG物理パーティションのサイズ
state present absentまたはpresentのいずれか。absentの場合、すべての基盤となるFSとLVはまずシステムから削除されなければなりません。
vg_type normal VGのタイプ。bignormalscalableのいずれか
lvlist - 以下に定義されたlvlistオブジェクト。これらの数はいくつでも設定できます。

lvlist

lvlistオプションの完全な概要は以下に示されています。これらの数はいくつでもvglistオブジェクト内に定義できます。デフォルトはaix_lvolモジュールのドキュメントおよびaix_filesystemに従います。FSを既存のLVなしで作成することは可能ですが、このロールは親LVがすべてのFSの前に作成されるという「ベストプラクティス」アプローチをとります。注意: このロールのデフォルト値は常にモジュールのデフォルトを使用します。aix_lvolまたはaix_filesystemモジュールがデフォルト値を変更した場合、このドキュメントが最新でない可能性があります。デフォルト値が変更され、このドキュメントが更新されていない場合は、問題やプルリクエストをログしてください。

変数 デフォルト コメント
lvname (必須) - LVの名前
lvstate present presentまたはabsentのいずれか。absentの場合、LVと関連するFSは削除されます。
lvcopies 1 LVのコピーの数。最大は3
lvtype jfs2 作成するLVのタイプ:[jfs2jfspagingetc]
lvopts - mklvに渡す自由形式のオプションリンク
lvpolicy maximum 物理ボリューム間の割り当てポリシーを設定します。maximumまたはminimumのいずれか。
lvpvs - ホストVGで使用するPVのリスト。
lvsize - 論理ボリュームのサイズ。[[MGT]単位]
lvstate present absentまたはpresentのいずれか。presentの場合、lvsizeが必要です。
fsaccount_subsystem false FSが会計サブシステムによって処理されるか。Bool。
fsattributes "agblksize='4096',isnapshot='no'" コンマで区切られたファイルシステムの属性
fsauto_mount false システム再起動時に自動的にマウントされるファイルシステム。
fsfilesystem - マウントポイント、ファイルシステムがマウントされるディレクトリ。fsstateabsentでない場合はrequired
fsstate present [presentabsentmountedunmounted]のいずれか。LVに添付されていないFSを作成したい場合は、fsstateabsentに設定します。
fsmount_group - FSマウントグループ
fspermissions rw FSの権限。rwまたはroのいずれか。

依存関係

なし

例 Playbook

小さくてシンプルな実験用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:

LVのない空のVG

---
- 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
所有者