AnsibleでVMwareのVMにディスクを追加してLVを拡張する


VMware ESXi上で稼働しているLinuxのVMにディスクを追加して論理ボリュームを拡張する自動化をやってみたのでやり方を書いてみたいと思います。

環境

項目 バージョン
CentOS 7.6
vCenter 6.7.0
Ansible 2.8.2

作ったPlaybook

使い方

クローン

リポジトリからクローンします。

インベントリ修正

対象のVMにSSHログインするようinventoryを修正します。

変数ファイルの修正

変数ファイルを修正します。

VMware関連パラメーター

VMware関連のパラメーターを修正します。

変数 説明
vcenter_hostname vCenterのIPまたはホスト名
vcenter_username vCenterにログインするユーザー名
vcenter_password vCenterにログインするユーザーのパスワード
datacenter_name データセンター名
disk_number ディスクを追加する時の番号、初期値は0
vm_name ディスクを追加するVM名

ディスク関連パラメーター

ディスク関連のパラメーターを修正します。

変数 説明
vg_name 拡張するボリュームグループ名
lv_name 拡張する論理ボリューム名
lv_block_device_path 論理ボリュームのデバイスパス
fstype ファイルシステムタイプ
existing_pv_path 追加するボリュームグループに紐づいている既存の物理ボリュームのパス、複数ある場合はリストで追加する
vm_disk 追加するディスク情報、複数指定できるようにリスト型
controller_key ディスクを追加する対象のSCSIコントローラーキー
size_mb ディスクのサイズをMBで指定
type vmdkのタイプ(thin, eagerzeroedthick, thick)
datastore vmdkを作成する先のデータストア名
scsi_controller SCSIコントローラー番号
scsi_type SCSIコントローラーのタイプ(buslogic, lsilogic, lsilogicsas)
state state
device_path 追加したディスクのブロックデバイスパス
disk_partition_number 追加したディスクの作成するパーティション番号

controller_keyscsi_controller のキーや番号を調べるのに以下のツールを使ってみようと思います。

使い方は以下のような感じです。

asciicast

上記で確認した keybusNumbercontroller_keyscsi_controller に設定します。

Playbookを実行

以下がPlaybookを実行した例です。
今回は ディスクを2個追加して centos-root のパーティションを拡張してみます。

asciicast

実行後、論理ボリュームが拡張されていることが分かります 🙂

こんな感じでVMのディスク追加から拡張までAnsibleで可能です。
便利ですね 🙂

みんなでハッピーオートメーション!

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください