Upload the Offline Bundle to a datastore of your host using the vSphere client's datastore browser. Then run the following command in a local or remote ESXi shell to install the bundle:
esxcli software vib install --no-sig-check -d /vmfs/volumes/datastore1/ProFTPD-1.3.3-8-offline_bundle.zip(replace datastore1 with the name of your datastore)
You do not need to put the host in maintenance mode before, and you do not need to reboot the host after the installation!
To uninstall the package run the following command
esxcli software vib remove -n ProFTPDUninstallation also does not require maintenance mode or rebooting.
Please read this post for more information about installing unsigned software packages in ESXi.
- Supports active and passive FTP
- Fully manageable in the vSphere client (like the builtin system services): Use the Configuration / Security Profile dialog to start, stop or restart the service, to set the startup mode and enable/disable associated firewall rules
- The commented config file /etc/proftpd.conf is editable, changes will persist upon reboots!
- Logging is disabled by default (to not fill the RAM disk). Can be changed in /etc/proftpd.conf.
ProFTPD runs fine in ESXi 5.1 and offers good transfer performance. You will notice messages in /var/log/vmkernel.log about the TCP Socket option SO_OOBINLINE not being available, but this can be safely ignored.
It will also work on ESXi 5.0, but here the VMkernel.log file fills up with error messages about unimplemented Linux functions. I recommend upgrading to ESXi 5.1 before using the package.
I personally do not see much value in having an FTP server in ESXi, because - if you really need to occasionally transfer files directly from/to ESXi - then you can also use other methods like the vSphere client's datastore browser or Veeam's free FastSCP tool.
I created this package purely for self-educational purposes: I wanted to find out how to create an ESXi installation package for a network service, and I will soon share what I have learnt in one or two more blog posts. Stay tuned!