Last active
December 14, 2015 21:49
-
-
Save bruienne/5154118 to your computer and use it in GitHub Desktop.
Configuration script for use with veewee to automatically install the Linux guest tools.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#Mount and install the VMware Fusion guest tools using default settings | |
kernel=`uname -s` | |
if [ "${kernel}" == "Linux" ]; then veewee_user="veewee"; elif [ "${kernel}" == "Darwin" ]; then veewee_user="vagrant"; fi | |
echo "**** Our kernel is ${kernel} and our user is ${veewee_user}." | |
if [ $kernel == "Linux" ]; then | |
#Set Linux-specific paths and ISO filename | |
home_dir="/home/$veewee_user" | |
iso_name="linux.iso" | |
mount_point="/mnt" | |
#Run install, unmount ISO and remove it | |
cd ${home_dir} | |
/bin/mount -o loop ${iso_name} ${mount_point} | |
tar zxf ${mount_point}/*.tar.gz && cd vmware-tools-distrib && ./vmware-install.pl --default | |
/bin/umount ${mount_point} | |
/bin/rm -rf ${home_dir}/${iso_name} ${home_dir}/vmware-tools-distrib | |
elif [ $kernel = "Darwin" ]; then | |
# Set Darwin-specific path and ISO filename | |
home_dir="/Users/$veewee_user" | |
iso_name=`basename $(find ${home_dir} -name "*.iso")` | |
# If a valid ISO was found mount it | |
cd ${home_dir} | |
if [[ ${iso_name} != '' ]]; then | |
mount_point=`/usr/bin/hdiutil attach -nobrowse -mountrandom /tmp ${home_dir}/${iso_name} | awk '/tmp/{print $3}'` | |
# If the ISO mounted properly install the PKG from the mount point | |
if [[ ${mount_point} =~ /tmp/.* ]]; then | |
/usr/sbin/installer -pkg "$(find ${mount_point} -name '*pkg')" -target / | |
/usr/bin/hdiutil detach ${mount_point} | |
/bin/rm -rf ${home_dir}/${iso_name} | |
else | |
echo "VMware Tools ISO did not mount properly, skipping install." | |
fi | |
else | |
echo "VMware Tools ISO not found, skipping install." | |
fi | |
fi |
Overhauled the script to work for both Linux and OS X guests. Need a better method to get the user name since Linux guests use "veewee" while OS X guests use "vagrant". This could be resolved by using "veewee" as the standard user as well in the OS X guest template.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Assumes guest tools ISO has already been copied into the VM by including ":vm_options => [ 'download_tools' => true ]" in your definition. Needs its filename included in the postinstall_files array, this is already present (but commented) out in some definition templates. For OS X guests change "linux.iso" to "darwin.iso" and for Windows to "windows.iso".