I see a fair amount of requests around how to do different things with VMware PowerCLI and the Pure Storage PowerShell SDK. How do I correlate a VMFS to a volume? How do I create a new VMFS? How do I expand? Etc.
To help our customers I have written a module that includes a lot of the common operations people might need to “connect” PowerCLI to our PowerShell SDK.
The module is called Cody.PureStorage.FlashArray.VMware.
There are a couple of places you can download this. The best option is the PowerShell gallery! This allows you to use install-module to automatically install the module. It requires PowerCLI and the PureStorage PowerShell SDK to be installed, the Pure Storage PowerShell SDK will be automatically installed when you do install-module if it is not already.
You can also manually get it here:
https://www.powershellgallery.com/packages/Cody.PureStorage.FlashArray.VMware/
If you do not have internet access on the machine, you can manually download it from my GitHub:
https://github.com/codyhosterman/powercli/blob/master/Cody.PureStorage.FlashArray.VMware.psm1
The cmdlet will help you connect PowerCLI commands (like get-datastore or get-vmhost) to operations you might want to do on the FlashArray. The cmdlets support pipeline input for most variables (datastores, FlashArray connections, ESXi hosts, etc.).
I will be working on adding more and more to this!
Use either get-help or get-command to see the details:
As new versions come out, just simply run:
update-module Cody.PureStorage.FlashArray.VMware
The version 1.0.0.2 has the following cmdlets:
get-faVolumeNameFromVvolUuid | Returns a FlashArray volume object from a entered VVol UUID |
new-pureflasharrayRestSession | Creates a REST session to a FlashArray. Allows you to make REST calls to the FlashArray that the PowerShell SDK does not yet natively support. |
remove-pureflasharrayRestSession | Removes a FlashArray session. |
get-vmdkFromWindowsDisk | Takes in a drive letter and returns the corresponding virtual disk object of the Windows VM. |
new-faHostFromVmHost | Creates a FlashArray host from the initiators of a given ESXi host. |
get-faHostFromVmHost | Returns the corresponding FlashArray host object of an entered ESXi host. |
get-faHostGroupfromVcCluster | Returns the corresponding FlashArray host group object of an entered ESXi host cluster. |
new-faHostGroupfromVcCluster | Creates a FlashArray host group from the initiators of a given ESXi host cluster. |
set-vmHostPureFaiSCSI | Configures iSCSI targets and best practices of a FlashArray on an ESXi host. |
set-clusterPureFAiSCSI | Configures iSCSI targets and best practices of a FlashArray on an ESXi host cluster. |
get-faVolfromVMFS | Returns the FlashArray volume that hosts a VMFS datastore. |
new-faVolVmfs | Creates a new FlashArray volume and presents it to a VMware cluster and formats it with VMFS |
add-faVolVmfsToCluster | Adds an existing VMFS to another VMware cluster. |
set-faVolVmfsCapacity | Resizes a FlashArray volume and grows the VMFS on it. |