{"id":20452770,"url":"https://github.com/tinuwalther/psxidiag","last_synced_at":"2025-04-13T03:19:58.950Z","repository":{"id":97307654,"uuid":"568395798","full_name":"tinuwalther/PSXiDiag","owner":"tinuwalther","description":"Create VMware ESXiHost Inventory Diagrams with PowerShell","archived":false,"fork":false,"pushed_at":"2024-06-26T07:34:10.000Z","size":20673,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T20:21:18.339Z","etag":null,"topics":["diagram","drawio","esxi-hosts","html","mermaid","powershell","pshtml","vmware"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tinuwalther.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-20T12:06:28.000Z","updated_at":"2024-11-19T20:31:33.000Z","dependencies_parsed_at":"2023-10-16T08:29:10.706Z","dependency_job_id":"2e7cf67f-8ccd-4fb7-8300-2834927dac81","html_url":"https://github.com/tinuwalther/PSXiDiag","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinuwalther%2FPSXiDiag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinuwalther%2FPSXiDiag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinuwalther%2FPSXiDiag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinuwalther%2FPSXiDiag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tinuwalther","download_url":"https://codeload.github.com/tinuwalther/PSXiDiag/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248658262,"owners_count":21140913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diagram","drawio","esxi-hosts","html","mermaid","powershell","pshtml","vmware"],"created_at":"2024-11-15T11:10:20.394Z","updated_at":"2025-04-13T03:19:58.930Z","avatar_url":"https://github.com/tinuwalther.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PSXi\n\nWe currently have ~150 ESXi Hosts across 12 vCenters in our environemnt. Whenerver I'm done with the visualization of it, it's already wrong and I can start again. Why doesn't PowerShell do this for me? That's why I wrote this framework.\n\n- [PSXiDiag](#psxidiag)\n  - [How it works](#how-it-works)\n  - [PSXi Homepage](#psxi-homepage)\n  - [PSXi Summary](#psxi-summary)\n  - [PSXi ESXi Inventory](#psxi-esxi-inventory)\n  - [Mermaid Diagram](#mermaid-diagram)\n  - [See also](#see-also)\n\n## How it works\n\nScriptRunner runs scheduled PowerShell-Scripts to collect all the data of all vCenters and send it over WinRM as CSV-files to the Pode-Server. The Pode-Server has a FileWatcher where it check for new CSV-files in /pode/input.\n\nThe file should be named:\n- cloud_ESXiHosts.csv\n- classic_ESXiHosts.csv\n- cloud_Summary.csv\n- classic_Summary.csv\n\nThe content of the CSV-file will be stored in a SQLite DB in seperated tabels for Cloud and Classic. You can access over Pode.Web to the SQLite DB and get the properties of Cloud-/Classic ESXiHosts.\n\n![PSXiHomePage](./pode/public/assets/img/PSXiPode.png)\n\n## PSXi Homepage\n\nThis is the Homepage of the PSXi App. It shows you the status of the Modules and the SQLite Database, Tables and Views.\n\n![PSXiHomePage Module Check](./img/PSXiHomePage1.png)\n![PSXiHomePage DB and Table Check](./img/PSXiHomePage2.png)\n![PSXiHomePage View Check](./img/PSXiHomePage3.png)\n\n## PSXi Summary\n\nIn the Summary, you can see the total of vCenter, and the count of each ESXiHost versions.\n\n![PSXiOverallSummary](./img/PSXiOverallSummary.png)\n![PSXiSummaryEsxiHosts](./img/PSXiSummaryEsxiHosts.png)\n\n## PSXi ESXi Inventory\n\nIf you click on the Group Classic and Classic ESXi Host Inventory, the first you can see is the summary of objects in this environment.\n\n![PSXiClassicSummaryEsxiHosts](./img/PSXiClassicSummaryEsxiHosts.png)\n\nAt the next you can search for an ESXiHosts. Enter the name of the ESXiHost in the search box and press submit.\n\n![PSXiSearchEsxiHosts](./img/PSXiSearchEsxiHosts.png)\n\nHere you can view, add, update and remove note of an ESXiHost.\n\n![PSXiEsyiHostsNotes1](img/PSXiEsyiHostsNotes1.png)\n\nTo add or update notes, enter the name of the ESXiHost and all Hosts of the ESXiHosts-table will be listet in the Dropdown, choose the one to edit and enter the note and press submit.\n\n![PSXiEsyiHostsNotes2](img/PSXiEsyiHostsNotes2.png)\n\nTo delete the notes of an ESXiHost, enter the name of the ESXiHost and all Hosts of the ESXiHosts-table will be listet in the Dropdown, choose the one to remove the notes and press submit.\n\n![PSXiEsyiHostsNotes3](img/PSXiEsyiHostsNotes3.png)\n\nEach ESXiHosts of the Classic will be grouped by their vCenter Server.\n \n![PSXiEsxInventory](./img/PSXiEsxInventory.png)\n\nEach vCenter of the Cloud has it own tab where you can find all ESXiHosts.\n\n![PSXivCenterTabs](./img/PSXivCenterTabs.png)\n\nIf you click at the row of an ESXiHost, all fileds of the selected ESXiHost will be showed as Sticky-note.\n\n![PSXiEsxiHostDetails](img/PSXiEsxiHostDetails.png)\n\n## Mermaid Diagram\n\nFor each zones, there is a Mermaid-Class-Diagram for each vCenter. \n\n![PSXiEsxInventory](./img/PSXiDiagramESXi.png)\n\nThe Diagram is an iFrame to another page and it will be automatically genereate, if you upload a new CSV-file into the folder where the FileWatcher is configured. This page use pode, pode.web, PSHTML and Mermaid.\n\n[Top](#)\n\n## Entity Relationship Diagrams\n\nPossible entities are:\n\n````mermaid\nerDiagram\n    classic_ESXiHosts ||--o{ View_classic_ESXiHosts : HostName\n    classic_ESXiHosts {\n        int ID\n        string HostName\n        string Version\n        string HostName\n        string Manufacturer\n        string Model\n        string vCenterServer\n        string Cluster\n        string PhysicalLocation\n        string ConnectionState\n    }\n    classic_ESXiHostsNotes ||--o{ View_classic_ESXiHosts : HostName\n    classic_ESXiHostsNotes {\n        int ID\n        string HostName\n        string Notes\n    }\n    View_classic_ESXiHosts {\n        int ID\n        string HostName\n        string Notes\n    }\n        \n    classic_summary {\n        int ID\n        string vCenterServer\n        string CountOfESXiHosts\n        string CountOfVMs\n    }\n\n    cloud_ESXiHosts ||--o{ View_cloud_ESXiHosts : HostName\n    cloud_ESXiHosts {\n        int ID\n        string HostName\n        string Version\n        string HostName\n        string Manufacturer\n        string Model\n        string vCenterServer\n        string Cluster\n        string PhysicalLocation\n        string ConnectionState\n    }\n    cloud_ESXiHostsNotes ||--o{ View_cloud_ESXiHosts : HostName\n    cloud_ESXiHostsNotes {\n        int ID\n        string HostName\n        string Notes\n    }\n    View_cloud_ESXiHosts {\n        int ID\n        string HostName\n        string Notes\n    }\n\n    cloud_summary {\n        int ID\n        string vCenterServer\n        string CountOfESXiHosts\n        string CountOfVMs\n    }\n````\n\nMore entities are possible.\n\n## See also\n\nWeb Server: [Pode](https://badgerati.github.io/Pode/)\n[Pode.Web](https://badgerati.github.io/Pode.Web/)\n\nDatabase: [mySQLite](https://github.com/jdhitsolutions/MySQLite)\n[SQLite Tutorial](https://www.sqlitetutorial.net)\n\n[Top](#)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinuwalther%2Fpsxidiag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftinuwalther%2Fpsxidiag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinuwalther%2Fpsxidiag/lists"}