Contents
VMware ESXi上で稼働しているLinuxのVMにディスクを追加して論理ボリュームを拡張する自動化をやってみたのでやり方を書いてみたいと思います。
環境
| 項目 | バージョン |
|---|---|
| CentOS | 7.6 |
| vCenter | 6.7.0 |
| Ansible | 2.8.2 |
作ったPlaybook
使い方
クローン
リポジトリからクローンします。
|
1 2 |
(venv) [root@a0a258a0931d ~]# git clone https://github.com/sky-joker/ansible-vmware-extend-lv.git |
インベントリ修正
対象のVMにSSHログインするようinventoryを修正します。
|
1 2 3 4 5 |
(venv) [root@a0a258a0931d ~]# cd ansible-vmware-extend-lv/ (venv) [root@a0a258a0931d ansible-vmware-extend-lv]# vi inventory [all] lvm-test ansible_host=192.168.0.65 ansible_user=root ansible_password=password |
変数ファイルの修正
変数ファイルを修正します。
|
1 2 |
(venv) [root@a0a258a0931d ~]# cd vars/ |
VMware関連パラメーター
VMware関連のパラメーターを修正します。
|
1 2 |
(venv) [root@a0a258a0931d vars]# vi vmware_parameters.yml |
|
1 2 3 4 5 6 7 8 |
# vmware parameters. vcenter_hostname: vCenter IP vcenter_username: administrator@vsphere.local vcenter_password: secret datacenter_name: DC disk_number: 0 # fixed parameter, do not change. vm_name: lvm-test |
| 変数 | 説明 |
|---|---|
| vcenter_hostname | vCenterのIPまたはホスト名 |
| vcenter_username | vCenterにログインするユーザー名 |
| vcenter_password | vCenterにログインするユーザーのパスワード |
| datacenter_name | データセンター名 |
| disk_number | ディスクを追加する時の番号、初期値は0 |
| vm_name | ディスクを追加するVM名 |
ディスク関連パラメーター
ディスク関連のパラメーターを修正します。
|
1 2 |
(venv) [root@a0a258a0931d vars]# vi vm_disk_parameters.yml |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# guest lvm parameters. vg_name: centos lv_name: root lv_block_device_path: /dev/centos/root fstype: xfs existing_pv_path: - /dev/sda2 # vm disk parameters. vm_disk: - controller_key: 1000 size_mb: 16000 type: thin datastore: VM scsi_controller: 0 scsi_type: paravirtual state: present device_path: /dev/sdb disk_partition_number: 1 |
| 変数 | 説明 |
|---|---|
| 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_key や scsi_controller のキーや番号を調べるのに以下のツールを使ってみようと思います。
使い方は以下のような感じです。
上記で確認した key と busNumber を controller_key と scsi_controller に設定します。
Playbookを実行
以下がPlaybookを実行した例です。
今回は ディスクを2個追加して centos-root のパーティションを拡張してみます。
実行後、論理ボリュームが拡張されていることが分かります 🙂
こんな感じでVMのディスク追加から拡張までAnsibleで可能です。
便利ですね 🙂
みんなでハッピーオートメーション!