我尝试创建了一个通过Ansible在VMware中自动生成VM清单报告的Playbook
在从vCenter导出VMware的VM库存信息时
-
- ブラウザを起動
-
- vCenterへアクセス
-
- ログイン
-
- クラスタやホストを選択
-
- VMのエクスポートする情報を選択
- VMの情報をエクスポート
因为考虑到稍微有点麻烦,所以我使用Ansible创建了一个自动生成报告的Playbook。
Ansible-VMware-VM-清单报告生成器
Ansible-VMware-VM-库存报告生成器
通过上述存储库中的Playbook,可以将虚拟机清单信息导出为 HTML 和 CSV 格式。
目标是 vCenter 管理的所有虚拟机。
用法
创建venv环境
在这里,我们创建一个Python3的虚拟环境。
[root@206d9746e86c ~]# python3 -m venv venv
[root@206d9746e86c ~]# source venv/bin/activate
(venv) [root@206d9746e86c ~]#
克隆存储库
将ansible-vmware-vm-inventory-report-generator进行克隆。
(venv) [root@206d9746e86c ~]# git clone https://github.com/sky-joker/ansible-vmware-vm-inventory-report-generator.git
安装所需的模块
安装所需的模块。
(venv) [root@206d9746e86c ~]# cd ansible-vmware-vm-inventory-report-generator/
(venv) [root@206d9746e86c ansible-vmware-vm-inventory-report-generator]# pip install -r requirements.txt
更改Playbook中的变量
将以下变量根据环境做相应修改。
(venv) [root@206d9746e86c ansible-vmware-vm-inventory-report-generator]# vi ansible-vmware-vm-inventory-generator.yml
(snip)
vars:
hostname: vCenter IP # vCenterのIPか名前解決のできるホスト名に変更してください
username: administrator@vsphere.local # vCenterにログインするユーザーに変更してください
password: ログインパスワードに変更してください # vCenterにログインするユーザーのパスワードに変更してください
export_type: html # エクスポートするタイプ、htmlまたはcsvに変更してください
(snip)
执行 Playbook。
修改Playbook中的变量后,执行Playbook。
(venv) [root@206d9746e86c ansible-vmware-vm-inventory-report-generator]# ansible-playbook ansible-vmware-vm-inventory-generator.yml
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [VMware VM Inventory Generator] ********************************************************************************************************************************
TASK [Gather fact for all vm] ***************************************************************************************************************************************
ok: [localhost]
TASK [Gather facts for vm summary] **********************************************************************************************************************************
ok: [localhost] => (item=molecule01)
ok: [localhost] => (item=AD01)
ok: [localhost] => (item=awx)
(snip)
如果顺利执行,将会生成报告。
当指定为html时,将生成html文件;当指定为csv时,将生成csv文件。
(venv) [root@206d9746e86c ansible-vmware-vm-inventory-report-generator]# ls vmware_vm_inventory_report.*
vmware_vm_inventory_report.csv vmware_vm_inventory_report.html
通过使用Ansible,可以自动化信息获取和报告生成,就像这样 🙂