VMware Cloud Community
francesco77
Contributor
Contributor
Jump to solution

Ubuntu/Debian guest customization missing in VSphere 5

Hello,

it seems that guest customization support for Ubuntu/Debian and other Linux OSes has been removed in VSphere 5. It was working in 3.5, 4.0 and 4.1 and there is no mention of its removal in VSphere 5 release notes.

Our automatic deployment scripts are based on guest customization, so now we're considering a rollback to 4.1.

Does anyone know whether guest customization support for Ubuntu/Debian will be restored in future VSphere releases/patches?

Regards,

Francesco Cambiaso

0 Kudos
1 Solution

Accepted Solutions
vBlockJFK
Enthusiast
Enthusiast
Jump to solution

No longer supported. I get the feeling VMware and Ubuntu are on the outs.

http://bit.ly/pHTi10

Symptoms

  • You are unable to customize a guest operating system in vSphere 5.0
  • Before upgrading to vSphere 5.0, you were able to customize the guest operating system

Resolution

Starting with vSphere 5.0, the support for the following operating systems is deprecated:

  • Debian (All versions)
  • Red Hat Enterprise Linux 2.1 Update 1-7
  • Red Hat Enterprise Linux 3.0 Update 1-9
  • SUSE Linux Enterprise Server 8.0 Service Pack 3
  • SUSE Linux Enterprise Server 9.0 Service Pack 1-4
  • Ubuntu (All versions)
  • Windows 2000 (All versions)
Guest customization support for non tier-1 and older guest operating systems in vSphere 5.0 are no longer supported. For more information on operating systems that are supported in vSphere 5.0, see the VMware Compatibility Guide.

View solution in original post

0 Kudos
5 Replies
tomatobear
Contributor
Contributor
Jump to solution

I'm facing the same issue. 

0 Kudos
vBlockJFK
Enthusiast
Enthusiast
Jump to solution

No longer supported. I get the feeling VMware and Ubuntu are on the outs.

http://bit.ly/pHTi10

Symptoms

  • You are unable to customize a guest operating system in vSphere 5.0
  • Before upgrading to vSphere 5.0, you were able to customize the guest operating system

Resolution

Starting with vSphere 5.0, the support for the following operating systems is deprecated:

  • Debian (All versions)
  • Red Hat Enterprise Linux 2.1 Update 1-7
  • Red Hat Enterprise Linux 3.0 Update 1-9
  • SUSE Linux Enterprise Server 8.0 Service Pack 3
  • SUSE Linux Enterprise Server 9.0 Service Pack 1-4
  • Ubuntu (All versions)
  • Windows 2000 (All versions)
Guest customization support for non tier-1 and older guest operating systems in vSphere 5.0 are no longer supported. For more information on operating systems that are supported in vSphere 5.0, see the VMware Compatibility Guide.
0 Kudos
tcutts
Enthusiast
Enthusiast
Jump to solution

Is there anywhere we can petition for this to be restored?  At least for Ubuntu Long Term Support releases?  Almost all of our Linux VMs are either Ubuntu LTS or Debian, and losing this functionality is very unfortunate.  Of course, I can customise a VM by hand, but that's rather tedious.

0 Kudos
basse
Contributor
Contributor
Jump to solution

I totally second that !!! Danm !

0 Kudos
tcutts
Enthusiast
Enthusiast
Jump to solution

For the moment I've hacked a script together which uses the vsphere perl utilities to find the current DHCP IP address allocated to the new virtual machine, logs into it using a trusted ssh key which is in the template, and reconfigures the hostname and network settings.

I've also found where you make feature requests for VMware.  I'd suggest everyone affected by this does so.  Unless they hear about it, they'll claim there's no demand.

Best of luck...

Here's my script, in case it's of use to anyone else:

#!/bin/bash
set -e
VSPHEREPERL=/where-you-installed/vsphere-perl-5.0.0
: ${VI_SERVER:=your-vcenter}
DOMAIN=example.com

unset PERL5LIB
export PERLLIB=$VSPHEREPERL/lib/perl5
export PATH=$VSPHEREPERL/bin/apps/vm:$PATH
host="$1"
hostent=$(getent hosts $host || /bin/true)
set -- $hostent
# if host is in DNS, assume static IP address
# otherwise, stick with DHCP
hostip=${1:-dhcp}
fqdn=${2:-${host}.$DOMAIN}
declare -a iface

tmpdir=$(mktemp -d)

get_vm_info() {
  echo "You may be prompted for your password here in order to contact vCenter"
  vminfo.pl --vmname $1 | sed -e 's/:[\t ]*/:/;s/[ \t]*$//' > $tmpdir/vminfo
  currentip=$(grep 'IP Address:' $tmpdir/vminfo | cut -d: -f2)
  guestid=$(grep 'guestId:' $tmpdir/vminfo | cut -d: -f2)
}
enumerate_ifaces() {
  iface=($(sudo -H /usr/bin/ssh "$1" ifconfig -a |  awk '/encap:Ethernet/ {print $1}'))
  if [ ${#iface[@]} -ne 1 ]; then
    echo "Automatic configuration only works on machines with a single ethernet interface"
    exit 1
  fi
  siteif=${iface[0]}
}
get_vm_info $host
case "$guestid" in
  debian*) ;;
  ubuntu*) ;;
  *) echo "Only Debian and Ubuntu guests are currently supported by this script"; exit 1 ;;
esac
if [ "$currentip" = 'Not Known' ]; then
  echo "Can't determine current IP address of $host.  Cannot continue."
  echo "Will try rebooting the VM now"
  vmcontrol.pl --vmname $host --operation reboot
  exit 1
fi
echo "You may now be prompted for your password in order to run sudo"
enumerate_ifaces $currentip
echo $host > $tmpdir/hostname
cat > $tmpdir/interfaces << EOF
auto lo
iface lo inet loopback
auto $siteif
EOF
if [ $hostip = 'dhcp' ]; then
cat >> $tmpdir/interfaces << EOF
iface $siteif inet dhcp
EOF
else
cat >> $tmpdir/interfaces << EOF
iface $siteif inet static
  address $hostip
  netmask 255.255.255.0
  broadcast ${hostip%.*}.255
  gateway ${hostip%.*}.1
EOF
fi
cat > $tmpdir/hosts << EOF
127.0.0.1 localhost
$hostip $fqdn $host
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
EOF

cat > $tmpdir/debconf << EOF
exim4-config exim4/dc_other_hostnames string $fqdn
EOF
sudo -H /usr/bin/ssh $currentip rm -f /etc/udev/rules.d/70-persistent-net.rules /var/lib/dhcpcd/*
sudo -H /usr/bin/ssh $currentip /usr/bin/touch /etc/dhcpc/inhibit-duid
sudo -H /usr/bin/scp -q $tmpdir/host* $currentip:/etc
sudo -H /usr/bin/scp -q $tmpdir/interfaces $currentip:/etc/network/interfaces
sudo -H /usr/bin/scp -q $tmpdir/debconf $currentip:/root/debconf
sudo -H /usr/bin/ssh $currentip /usr/bin/debconf-set-selections /root/debconf
if [ $hostip = dhcp ]; then
sudo -H /usr/bin/ssh $currentip /sbin/shutdown -r now
else
cat << EOF
Now change the VM's network to the correct VLAN in vSphere before
you power it on
EOF
sudo -H /usr/bin/ssh $currentip /sbin/shutdown -h now
fi
rm -rf $tmpdir
0 Kudos