This plugin integrates Microsoft SCVMM with Morpheus, enabling cloud sync, provisioning, and backup operations. It provides a CloudProvider for syncing cloud objects, a ProvisionProvider for VM provisioning, and a BackupProvider for VM snapshots and backups.
- Features
- Requirements
- Repository structure
- Building the plugin
- License
- Installing
- Detailed Usage Steps
- Syncs hosts, networks, and virtual machines from SCVMM to Morpheus
- Provisions Virtual Machines and Docker Cluster
- Supports VM snapshot creation and restore for backup/restore operations
- Java 17 or greater
- Gradle
- Microsoft SCVMM version 2016 or greater
- Morpheus appliance version compatible with plugin integration
- SCVMM credentials (username/password), host, WINRM port, working path, VM path, disk path
src/main/groovy/com/— Main plugin source code (providers, integration logic)cloud/— Cloud integration and managementprovision/— VM provisioning logicbackup/— VM snapshot and backup logicsync/— Resource sync tasks and helpersutil/— Utility classes and helpers
src/assets/images/— Plugin icons and SVG assets
src/main/resources/i18n/— Localization and translation filesscribe/— Scribe manifests and configurationMETA-INF/— Plugin metadata and notices
build.gradle— Gradle build configurationgradle.properties— Gradle propertiessettings.gradle— Gradle project settingsREADME.md— Project documentationLICENSE— License fileNOTICE— Notice filefunctional_tests/— Python-based functional test suitecommon/— Shared test utilities and configstests/— Test cases for plugin functionality
build/— Build output (generated JARs, assets, classes)gradle/— Gradle wrapper files and configuration
Run the following command to compile and package the plugin jar:
./gradlew clean buildThis project is licensed under the Apache 2.0 License. See the LICENSE file for details.
- Build the plugin using the provided Gradle command.
- Locate the generated
morpheus-scvmm-plugin-x.x.x.jarin thebuild/libs/directory. - Upload the jar file to your Morpheus appliance plugin directory.
- Restart the Morpheus appliance or reload plugins as required.
The SCVMM plugin uses the Get-SCStorageVolume PowerShell cmdlet to retrieve storage volume information. Each storage
volume is represented as a data store in Morpheus.
You may find some data stores listed that are undesired. They might have an unfamiliar name, or a capacity that is unexpectedly small, as in this example:
NAME CAPACITY
--------------------------------------------------------- ------------------
NODE1 : \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ 37.4MiB / 200.0MiB
These typically are "EFI System Partition" and "Recovery Partition" volumes that are not intended for use as data stores. If you mark these volumes as not available to deploy virtual machines, the SCVMM plugin will honor that and not list them as available data stores for provisioning. They will also appear as offline in the Morpheus data stores view.
Here is a script to display the volumes and their current IsAvailableForPlacement state:
Get-SCStorageVolume | Select-Object Name, VMHost, IsAvailableForPlacement | Format-Table -AutoSizeHere is a script that will mark any volume with a capacity less than 2 GiB as not available for provisioning:
Get-SCStorageVolume | Where-Object { $_.Capacity -lt 2GB } | ForEach-Object { Set-SCStorageVolume -StorageVolume $_ -AvailableForPlacement $false }You can use finer controls if you want to enable/disable IsAvailableForPlacement for specific volumes.
- After adding the SCVMM cloud in Morpheus, resources such as hosts, networks, and VMs will be automatically synced.
- Navigate to Infrastructure > Clouds and select your SCVMM cloud to view synced resources.
- Go to Provisioning > Instances > + Add.
- Select your SCVMM cloud and choose a deployment flavor/template.
- Fill in the required VM details and submit the provisioning request.
- Select a VM managed by the SCVMM plugin.
- Use the Backup or Snapshot actions to create or restore VM snapshots.
For more detailed instructions and screenshots, refer to the official Morpheus documentation.