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のタイプ。big 、normal 、scalable のいずれか |
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のタイプ:[jfs2 、jfs 、paging 、etc ] |
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 |
- | マウントポイント、ファイルシステムがマウントされるディレクトリ。fsstate がabsent でない場合はrequired |
fsstate |
present |
[present 、absent 、mounted 、unmounted ]のいずれか。LVに添付されていないFSを作成したい場合は、fsstate をabsent に設定します。 |
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
謝辞
- Larry Smith Jr. - mrlesmithjr
- Ansible