As many of you know, I am a huge fan of the VCSA (vCenter Server Appliance), not only for its ease of deployment and setup but also the fact that I can easily automate the entire deployment in just under a couple of minutes. I have written about this topic in the past using the vpxd_servicecfg command to automate both VCSA 5.0 and VCSA 5.1. I figured it was probably a good idea to update this for latest VCSA 5.5 which includes several new enhancements to vpxd_servicecfg command such as the VMware Customer Experience Improve Program configuration (vTelemtry) among other options that you can explore by simply running the vpxd_servicecfg on the VCSA.
The other reason I wanted to update this for the latest VCSA 5.5 is that I was working with Engineering last week on a project and several of them did not know about this capability of being able to automate the VCSA configuration. Instead of providing them with the raw commands, I thought I would create an updated script that can be shared with the community so that others could also benefit from it. Lastly, I also did this for myself as I deploy a large amount of VCSA for all sorts of testing that I am doing on a regular basis and this would allow me to quickly speed up my deployment by simply going to my own blog ๐
Below is a shell script that contains several variables that can be edited based on your environment setup and you can run this script over SSH using something like: ssh root@[VCSA-IP] < configureVCSA.sh
#!/bin/bash # William Lam # www.virtuallyghetto.com # Script to automate VCSA 5.5+ Configurations # User Configurations # SSO Administrator password (*protected email*) SSO_ADMINISTRATOR_PASSWORD=VMware1! # Join Active Directory (following 5 variables required) JOIN_AD=0 AD_DOMAIN=primp-industries.com AD_USER=administrator AD_PASS=mysupersecurepassword VCENTER_HOSTNAME=vcenter51-1.primp-industries.com # Enable NTP ENABLE_NTP=0 NTP_SERVERS=192.168.1.1 # Enable VMware Customer Experience Improvement Program ENABLE_VC_TELEMTRY=1 ################ DO NOT EDIT BEYOND HERE ################ echo "Accepting VMware EULA ..." /usr/sbin/vpxd_servicecfg eula accept if [ ${JOIN_AD} -eq 1 ]; then echo "Configuring vCenter Server hostname ..." SHORTHOSTNAME=$(echo ${VCENTER_HOSTNAME} | cut -d. -f1) /bin/hostname ${VCENTER_HOSTNAME} echo ${VCENTER_HOSTNAME} > /etc/HOSTNAME sed -i "s/localhost/${SHORTHOSTNAME}/g" /etc/hosts echo "Configuring Active Directory ..." /usr/sbin/vpxd_servicecfg ad write "${AD_USER}" "${AD_PASS}" ${AD_DOMAIN} fi echo "Enbaling Time Synchronization ..." if [ ${ENABLE_NTP} -eq 1 ]; then /usr/sbin/vpxd_servicecfg timesync write ntp ${NTP_SERVERS} else /usr/sbin/vpxd_servicecfg timesync write tools fi echo "Configuring vCenter Server Embedded DB ..." /usr/sbin/vpxd_servicecfg db write embedded echo "Configuring vCenter Server SSO w/custom *protected email* password ..." /usr/sbin/vpxd_servicecfg sso write embedded ${SSO_ADMINISTRATOR_PASSWORD} echo "Starting the vCenter Server Service ..." /usr/sbin/vpxd_servicecfg service start if [[ -e /var/log/vmware/phonehome ]] && [[ ${ENABLE_VC_TELEMTRY} -eq 1 ]]; then echo "Enabling vCenter Server Telemtry ..." /usr/sbin/vpxd_servicecfg telemetry enable fi