Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Deploy Folding@Home VM PowerCLI Script

This is a basic script designed around deploying the VMware Appliance for Folding@Home

Depending on how you want to deploy your appliance - you have a plethora of options. This will take you through the various editable sections of the script.

Path to OVF

The Path to the OVF is largely relative to the script. Just like any file - if can reference something directly in the directory its in. Example 1 - OVA is in same directory as deployment script:

$ovfPath = "VMware-FaH-Appliance_1.0.0.ova"

Example 2 - OVA is in another directory all together.

$ovfPath = "C:\my_magic_dir\VMware-FaH-Appliance_1.0.0.ova"

vCenter Credentials

Due to the nature of one of our most important commands in the script Get-OvfConfiguration, we have to connect to a vCenter. As of today - that's a username and password.

Basic Deployment Environment Details

There are 3 primary deployment considerations to use when deploying an OVA / OVF.

  • Datastore
  • Network
  • Deploy Host The code will require you to specifically call out the appropriate Deploy Host (the host doing the work) and attached Datastore and validate the network exists.
$esxi_deployer_hostname = "esxi01.lab.corp.local" # esxi host FQDN or IP
$datastore_name = "SHARE"
$network_name = "VM Network"

Basic Guest Details

By default - giving a guest a hostname will also name that VM the same thing. You can modify the VM name in the Optional Deployment Environment Details. You also will want to set a default root password for your VM.

$guest_hostname = "fahclient0"
$guest_root_password = "VMware1!"

Basic Folding@Home Details

These are your personal details for your Folding@Home.

  • $fah_username is your personal username.
  • $fah_team is the team you're trying to Fold with. Obviously you want VMware: 52737
  • $fah_passkey is your private passkey provided to you by Folding@Home
  • $fah_mode is the mode at which you want to run your Folding@Home Client. It has 3 distinct options:
    • light - Low CPU Utilization
    • medium - Middling CPU Utilization
    • full - 100% CPU whenever operating on a workload.
  • $fah_gpu asks if you want the VM to autodetect and utilize an attached GPU.
$fah_username = "MyUser"
$fah_team = "52737"
$fah_passkey = ""
$fah_mode = "medium" # Needs to be light, medium, full
$fah_gpu = $false # Or $true

Optional Deployment Environment Details

If you don't want the guest hostname to match the VM name you can set that as an override right here.

$vm_name = ""

And if you want the deployment to run asynchronously

$run_async = $false

Optional Guest Details

Leaving any of these details empty will just use defaults. (DHCP, DNS, NTP, and Proxy)

IP Address Details

The only field worth calling out is the guest_netmask variable. If you're going to set that - it needs to be very specific. It needs to follow a standard format:

"<CIDR Number> (<NETMASK>)"

The script does not check if the netmask matches the CIDR. That's up to you. You can use a cheat sheet to help

$guest_ip_address = ""
$guest_netmask = "24 ("
$guest_gateway = ""

DNS, Domain, and NTP Details

$guest_dns = ""
$guest_domain = "corp.local"
$guest_ntp = ""

Proxy Details

$guest_http_proxy = "http://my_magic_proxy:8080/"
$guest_https_proxy = "https://my_magic_proxy:8443/"
$guest_no_proxy = "localhost,,,"
$guest_proxy_username = "bzaks1424"
$guest_proxy_password = "VMware1!"

Optional Folding@Home Details

Leaving any of these details empty will just use defaults. (No remote client connectivity, or web server) Folding at home has some great built in security measures. You have the ability to limit web server from communicating directly with the VM. That webserver is hosted on port 7396.

$fah_web_remote_networks = ","

You also have the ability to prevent FAH control from communicating directly to the VMs over port 36330

$fah_remote_networks = ","

Finally - if you want to be ultra secure within your network - you can even limit who can communicate with a given client (VM). You can set a password for communication.

$fah_remote_pass = "VMware1!"


No description, website, or topics provided.






No releases published


No packages published