<?xml version="1.0" encoding="utf-8"?>
<ovf:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:vadk="http://www.vmware.com/schema/vadk"
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
xmlns:vmw="http://www.vmware.com/schema/ovf"
xmlns:vsm="http://www.vmware.com/schema/vServiceManager"
xsi:schemaLocation="http://schemas.dmtf.org/ovf/envelope/1 /opt/vmware/etc/build/schemas/vadk.xsd"
ovf:version="0.7.0"
vadk:version="2.6.0.0">
<References>
<File ovf:href="system.vmdk" ovf:id="system.vmdk_id"/>
</References>
<!--
The Annotation element of the AnnotationSection_Type is the text
that will be presented as the Description of the VM.
-->
<Section xsi:type="ovf:AnnotationSection_Type">
<Info/>
<Annotation/>
</Section>
<Section xsi:type="ovf:ProductSection_Type" ovf:required="false">
<Info>VM ISV branding information</Info>
<Product>Swarm</Product>
<Vendor>Perforce Software, Inc.</Vendor>
<!--
Version is the actual product version in the
form X.X.X.X where X is an unsigned 16-bit integer.
FullVersion is a descriptive version string
including, for example, alpha or beta designations
and other release criteria.
-->
<Version>@INTERNAL_VERSION@</Version>
<FullVersion>@VERSION@</FullVersion>
<ProductUrl></ProductUrl>
<VendorUrl>http://www.perforce.com/</VendorUrl>
<AppUrl></AppUrl>
<Category>Application</Category>
</Section>
<Section xsi:type="vadk:ExtendedProductSection_Type">
<Info/>
<vadk:VendorUUID>3ee99593-0777-4749-ab26-1f7419297f3a</vadk:VendorUUID>
<vadk:ProductRID></vadk:ProductRID>
<vadk:AppUrlName></vadk:AppUrlName>
<vadk:Logo></vadk:Logo>
<vadk:LogoUrl></vadk:LogoUrl>
<vadk:WelcomeText> ___ __ ___
| _ \___ _ _ / _|___ _ _ __ ___ / __|_ __ ____ _ _ _ _ __
| _/ -_) '_| _/ _ \ '_/ _/ -_) \__ \ V V / _` | '_| ' \
|_| \___|_| |_| \___/_| \__\___| |___/\_/\_/\__,_|_| |_|_|_|
${app.name} version ${app.version}
To use Swarm, browse to:
http://${app.ip}/
For documentation on Swarm, please see:
http://${app.ip}/docs/
Please ensure you add the necessary triggers to your Perforce server:
http://${app.ip}/docs/setup/perforce_config.html
To manage this VM, browse to:
${vami.url}
.' '. __
For assistance, please contact: . . . (__\_
support@perforce.com . . . -{{_(|8)
' . . ' ' . . ' (__/`
This product includes PHP software, freely available from
<http://www.php.net/software/>
</vadk:WelcomeText>
</Section>
<Section xsi:type="vadk:SSLCertificateSection_Type">
<Info/>
<vadk:CommonName>www.perforce.com</vadk:CommonName>
<vadk:OrganizationName>Perforce Software, Inc.</vadk:OrganizationName>
<vadk:OrganizationalUnitName>VM Division</vadk:OrganizationalUnitName>
<vadk:CountryName>US</vadk:CountryName>
</Section>
<Section xsi:type="vadk:VAMISection_Type">
<Info>VAMI Specific Information</Info>
<vadk:InitScript vadk:template="/opt/vmware/etc/vaos/vaos_init.sh"/>
<vadk:ShowEULA>true</vadk:ShowEULA>
<vadk:SetHostname>true</vadk:SetHostname>
<vadk:SetNetwork>true</vadk:SetNetwork>
<vadk:CreateSSHKeys>true</vadk:CreateSSHKeys>
<vadk:RunBootScripts>true</vadk:RunBootScripts>
<vadk:LoginTTY>true</vadk:LoginTTY>
<vadk:ManagementSrv>true</vadk:ManagementSrv>
<vadk:Services>
<vadk:Service vadk:name="core" vadk:version="2.6.0.0" vadk:tabOrder="0"/>
<vadk:Service vadk:name="system" vadk:version="2.6.0.0" vadk:tabOrder="1"/>
<vadk:Service vadk:name="network" vadk:version="2.6.0.0" vadk:tabOrder="2"/>
<vadk:Service vadk:name="update" vadk:version="2.6.0.0" vadk:tabOrder="0"/>
</vadk:Services>
<vadk:ManagementGUI>true</vadk:ManagementGUI>
<vadk:WebServer vadk:httpsPort="5480"/>
<vadk:ViewCustomization>
<vadk:FooterLeft>
<!--Html for the footer left section, example ISV small logo -->
</vadk:FooterLeft>
<vadk:FooterCopyright>
<!--Html for footer middle section, ISV copyright section.-->
</vadk:FooterCopyright>
</vadk:ViewCustomization>
<vadk:VMToolsCore
vadk:install="true"
vadk:pkgsDir="/ecloud/vmware-studio/templates/ubuntu/12/042_amd64/vmware-tools"/>
<vadk:VMToolsX
vadk:install="false"
vadk:pkgsDir=""/>
</Section>
<Section xsi:type="vadk:ApplicationSection_Type">
<Info/>
<vadk:VMXFilename>@PACKAGE@.vmx</vadk:VMXFilename>
<vadk:DistributionFormat vadk:format="ovf"
vadk:enabled="false"
vadk:filename="@PACKAGE@"
vadk:directory="">
<vadk:PostOutputCreation>
<vadk:Script vadk:name="sign" vadk:enabled="false">#!/bin/sh
# This script will be passed the full path to the ovffile as $1
#
# The script should produce a detached signature file with
# a .cert extension into the same directory as the passed ovffile.
# this will generate a self-signed certificate and sign the OVF with it.
cd `dirname $1`
/opt/vmware/bin/signovf -s '/C=US/ST=Some-State/O=AnyCompany/CN=Self-Signed' `basename $1`
# if you have your own pem key, you can sign the OVF with it this way:
# /opt/vmware/bin/signovf -p /tmp/my_pem_file.pem `basename $1`
</vadk:Script>
</vadk:PostOutputCreation>
</vadk:DistributionFormat>
<vadk:DistributionFormat vadk:format="ova"
vadk:enabled="true"
vadk:filename="@PACKAGE@"
vadk:directory="">
<vadk:PostOutputCreation/>
</vadk:DistributionFormat>
<vadk:DistributionFormat vadk:format="vmx"
vadk:enabled="false"
vadk:filename="@PACKAGE@"
vadk:directory="">
<vadk:PostOutputCreation/>
</vadk:DistributionFormat>
<vadk:DistributionFormat vadk:format="zip"
vadk:enabled="false"
vadk:filename="@PACKAGE@"
vadk:directory="">
<vadk:PostOutputCreation/>
</vadk:DistributionFormat>
<vadk:ApplicationPackages>
<vadk:url>@APP_PACKAGE_URL@</vadk:url>
<vadk:url>@VENDOR_PACKAGE_URL@</vadk:url>
</vadk:ApplicationPackages>
<vadk:OSPackages>
<!-- addtl OS pkgs needed by the ISV's app -->
<!-- Swarm packages dependencies (@//depot/main/swarm/packaging/debian/control):
perforce-swarm:
apache2
libapache2-mod-php5 (>= 5.3.3)
php-apc
php5-cli (>= 5.3.3)
php5-json
wget
cron-daemon
perforce-swarm-optional:
libreoffice-calc (>= 3.5.7)
libreoffice-draw (>= 3.5.7)
libreoffice-impress (>= 3.5.7)
libreoffice-writer (>= 3.5.7)
php5-imagick (>= 3.1)
-->
<!-- these are commented out since Swarm packages should resolve these -->
<!-- @TODO: remove once we are satisfied these are not needed
<vadk:Package vadk:name="apache2-mpm-prefork"/>
<vadk:Package vadk:name="libmagickwand4"/>
<vadk:Package vadk:name="libreoffice-calc"/>
<vadk:Package vadk:name="libreoffice-draw"/>
<vadk:Package vadk:name="libreoffice-writer"/>
<vadk:Package vadk:name="libreoffice-impress"/>
-->
<vadk:Package vadk:name="libglib2.0-0"/>
<vadk:Package vadk:name="python-libxml2"/>
</vadk:OSPackages>
<vadk:PackagesToRemove>
<!-- <vadk:Package vadk:name=""/> -->
</vadk:PackagesToRemove>
<vadk:BootActions>
<vadk:FirstBoot>#!/bin/bash
# Un comment to send the output of this script to a logfile
#exec > /opt/vmware/var/log/firstboot 2>&1
: This script is executed on first boot only.
/etc/first-time-boot.sh
# Un comment to run subsequent boot script after first boot
#/opt/vmware/etc/isv/subsequentboot
</vadk:FirstBoot>
<vadk:SubsequentBoot>#!/bin/bash
# Un comment to send the output of this script to a logfile
#exec > /opt/vmware/var/log/subsequentboot 2>&1
: This script is executed on all boots, except the first one.
</vadk:SubsequentBoot>
</vadk:BootActions>
<vadk:Users>
<vadk:User vadk:username="root"
vadk:password="cm9vdA=="
vadk:passwordFormat="base64"
vadk:uid="0"
vadk:gid="0"
vadk:fullname="Administrator"
vadk:vamiAdmin="true"/>
<vadk:User vadk:username="swarm"
vadk:password="c3dhcm0="
vadk:passwordFormat="base64"
vadk:uid=""
vadk:fullname="Swarm User"
vadk:vamiAdmin="true"/>
</vadk:Users>
</Section>
<Section xsi:type="vadk:IpAssignmentSection_Type">
<Info>Supported IP assignment schemes</Info>
<vmw:IpAssignmentSection ovf:required="false" vmw:protocols="IPv4,IPv6" vmw:schemes="">
<Info>Supported IP assignment schemes</Info>
</vmw:IpAssignmentSection>
</Section>
<Section xsi:type="vadk:PropertySection_Type">
<Info/>
</Section>
<Section xsi:type="vadk:AnyOVFSection_Type">
<Info>
Unknown OVF elements in this element will be passed directly
to the OVF output descriptor without interpretation
</Info>
</Section>
<Section xsi:type="vadk:UpdateSection_Type">
<Info/>
<vadk:Repository vadk:url=""
vadk:username=""
vadk:password=""
vadk:passwordFormat="base64"/>
<!--
<vadk:RepositoryStagingServer
vadk:hostname=""
vadk:fileLogin="root"
vadk:filePassword=""
vadk:filePasswordFormat="plaintext"
vadk:fileProto="scp"
vadk:filePath="/tmp"/>
-->
<vadk:Info/>
<!--
<vadk:RepositoryExport vadk:format="zip" vadk:filename="VADK_Update"/>
-->
<vadk:PreInstallShellScript>#!/bin/sh
# Sample pre install update script
# This script will be executed with the following arguments:
# $1 - version of VM before update
# $2 - version of VM trying to be installed
: "Installing update from version $1 to version $2"
#exit with value of 0 to allow update to continue
exit 0
</vadk:PreInstallShellScript>
<vadk:PostInstallShellScript>#!/bin/sh
# Sample post install update script
# This script will be executed with the following arguments:
# $1 - version of VM before update
# $2 - version of VM trying to be installed
# $3 - status of update process
#
# The Status in $3 will indicate to success of failure of the update:
# 0 - all update steps are successful
# 1 - pre install script failed, package test and installation skipped
# 2 - pre install success, package test failed, installation skipped
# 4 - pre install and package test success, package installation failed
#
# A Status of 2 is likely caused by a package dependency conflict.
# A Status of 4 is likely caused by a failed package install script.
if [ $3 -eq 0 ]; then
echo "Finished installing version $2"
else
echo "Failed with status of $3 while installing version $2"
echo "VM version is still $1"
fi
# Exit with a value of 0 to allow the VM version to be changed and set the
# final update status to success.
exit 0
</vadk:PostInstallShellScript>
<vadk:DigitalSignature>
<vadk:Script vadk:name="sign" vadk:enabled="true">#!/bin/sh
# Sample script to sign updates
# $1 is the file to sign
# $2 is the file to save sig into write the signature to stdout
# sample pem file
PEMFILE=/opt/vmware/etc/update.pem
# Sign the update with the temporary certificate
openssl dgst -sha1 -sign $PEMFILE -out "$2" "$1"
</vadk:Script>
<vadk:Script vadk:name="pubkey" vadk:enabled="true">#!/bin/sh
# Sample script to get the public key
# $1 is the file to write the public key to
SUBJECT='/C=US/ST=Some-State/O=AnyCompany/CN=Self-Signed'
PEMFILE=/opt/vmware/etc/update.pem
if [ ! -f $PEMFILE ]; then
# Create a temporary self-signed certificate first time only
openssl req -x509 -nodes -sha256 -newkey rsa:1024 -keyout $PEMFILE -out $PEMFILE -subj '$SUBJECT'
fi
# Get the public key
openssl rsa -in $PEMFILE -pubout -out $1
</vadk:Script>
<vadk:Script vadk:name="validate" vadk:enabled="true">#!/bin/sh
# Sample script to validate digital signature
# $1 is the file to validate
# $2 is the signature file
# $3 is the signature key file
# exit with status of 0 if valid
openssl dgst -sha1 -verify "$3" -signature "$2" "$1"
</vadk:Script>
</vadk:DigitalSignature>
<vadk:UpdateInfoList>
<vadk:UpdateInfo vadk:introduced-version=""
vadk:category="feature"
vadk:severity="important"
vadk:affected-versions=""
vadk:description=""
vadk:reference-type="vendor"
vadk:reference-id=""
vadk:reference-url=""/>
</vadk:UpdateInfoList>
</Section>
<!-- Defined by CIM_OperatingSystem.OsType -->
<Section ovf:id="102" ovf:version="" vmw:osType="ubuntu64Guest" xsi:type="ovf:OperatingSystemSection_Type">
<Info>Guest Operating System</Info>
<Description>Ubuntu 12.04.2 LTS amd64</Description>
</Section>
<Section xsi:type="ovf:VirtualHardwareSection_Type" ovf:transport="com.vmware.guestInfo">
<Info>Virtual Hardware Requirements</Info>
<System>
<vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>
</System>
<Item>
<rasd:Caption>2 virtual CPU</rasd:Caption>
<rasd:Description>Number of virtual CPUs</rasd:Description>
<rasd:InstanceId>1</rasd:InstanceId>
<rasd:ResourceType>3</rasd:ResourceType>
<rasd:VirtualQuantity>2</rasd:VirtualQuantity>
</Item>
<Item>
<rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits>
<rasd:Caption>2048 MB of memory</rasd:Caption>
<rasd:Description>Memory Size</rasd:Description>
<rasd:InstanceId>2</rasd:InstanceId>
<rasd:ResourceType>4</rasd:ResourceType>
<rasd:VirtualQuantity>2048</rasd:VirtualQuantity>
</Item>
<Item>
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
<rasd:Caption>Ethernet adapter on vmnet</rasd:Caption>
<rasd:Connection>Network 1</rasd:Connection>
<rasd:InstanceId>3</rasd:InstanceId>
<rasd:ResourceSubType>E1000</rasd:ResourceSubType>
<rasd:ResourceType>10</rasd:ResourceType>
</Item>
<Item>
<rasd:BusNumber>0</rasd:BusNumber>
<rasd:Caption>SCSI Controller 0 - LSI Logic</rasd:Caption>
<rasd:InstanceId>4</rasd:InstanceId>
<rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
<rasd:ResourceType>6</rasd:ResourceType>
</Item>
<Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:Caption>Harddisk 0</rasd:Caption>
<rasd:HostResource>/disk/system</rasd:HostResource>
<rasd:InstanceId>5</rasd:InstanceId>
<rasd:Parent>4</rasd:Parent>
<rasd:ResourceType>17</rasd:ResourceType>
</Item>
</Section>
<Section xsi:type="vadk:VServiceSection_Type">
<Info>
vService content in this element will be passed directly
to the OVF output descriptor without interpretation
</Info>
<!--
<vsm:vServiceDependency ovf:id="xx" ovf:required="true">...</vsm:vServiceDependency>
-->
</Section>
<Section xsi:type="vadk:JEOSSection_Type">
<Info/>
<vadk:BootArgs>
initrd=ubuntu-installer/amd64/initrd.gz
priority=critical
locale=en_US bootkbd=us
kbd-chooser/method=us console-setup/layoutcode=us
disable_dhcp=true
file=/preseed.cfg
--
</vadk:BootArgs>
<vadk:BootArgsDHCP>
append initrd=ubuntu-installer/amd64/initrd.gz
priority=critical locale=en_US bootkbd=us
kbd-chooser/method=us console-setup/layoutcode=us
netcfg/disable_dhcp=false dhcptimeout=120 netcfg/choose_interface=eth0
preseed/url=[VADK.unattendedCfgURL]
--
</vadk:BootArgsDHCP>
<vadk:BootFiles vadk:relPath="install/netboot" vadk:kernel="ubuntu-installer/amd64/linux"/>
<vadk:UnattendedInstallTemplate>
/ecloud/vmware-studio/templates/ubuntu/12/ubuntu12.xsl
</vadk:UnattendedInstallTemplate>
<vadk:PreInstallScript
vadk:template="/ecloud/vmware-studio/templates/ubuntu/12/preinstall.xsl"
vadk:output="[VADK.stageDir]/preinstall.sh"/>
<vadk:PostInstallScript
vadk:template="/ecloud/vmware-studio/templates/ubuntu/12/post.xsl"
vadk:path="http://[VADK.localIP]/build/[VADK.buildID]/configure_appliance"
vadk:output="[VADK.stageDir]/configure_appliance"/>
<vadk:PostScriptRepoList>RepositoryList</vadk:PostScriptRepoList>
<vadk:PostScriptPackageList>PackageList</vadk:PostScriptPackageList>
<vadk:VADKPackages
vadk:path="http://[VADK.localIP]/build/[VADK.buildID]/repo/vadkPackages/"
vadk:sourceDir="[VADK.vadkRoot]/lib/build/include/deb64/"
vadk:targetDir="[VADK.stageDir]/repo/vadkPackages/"/>
<vadk:ISO
vadk:path="file:///ecloud/isos/os/linux/Ubuntu/ubuntu-12.04.2-server-amd64.iso"
vadk:md5sum="af5f788aee1b32c4b2634734309cc9e9"
vadk:packageRepoPath=""
vadk:packageMetadataPath="dists/stable/main/binary-amd64/Packages.gz"
vadk:containFiles=""/>
<vadk:Distribution
vadk:vendor="Ubuntu"
vadk:OSverMajor="12"
vadk:OSverMinor="042"
vadk:arch="amd64"
vadk:smp="1"
vadk:packageFormat="deb"
vadk:packageManager="apt"
vadk:packageRepoDir="packageRepoDir"/>
<vadk:OSPackages>
<vadk:PackageGroup vadk:value="ubuntu-minimal"/>
<vadk:Package vadk:name="openssh-server"/>
<vadk:Package vadk:name="man-db"/>
<vadk:Package vadk:name="manpages"/>
<vadk:Package vadk:name="manpages-dev"/>
</vadk:OSPackages>
</Section>
<Section xsi:type="vadk:BuildSection_Type">
<Info/>
<vadk:ProvisioningSettings>
<vadk:NetworkConnection>VM Network</vadk:NetworkConnection>
<vadk:NetworkType>dhcp</vadk:NetworkType>
<vadk:IP></vadk:IP>
<vadk:Netmask></vadk:Netmask>
<vadk:Gateway></vadk:Gateway>
<vadk:DNS1>10.5.20.53</vadk:DNS1>
<vadk:DNS2>10.0.0.2</vadk:DNS2>
</vadk:ProvisioningSettings>
<vadk:ProvisioningEngine>
<vadk:VmhostLan
vadk:hostname="esx02.bnr.perforce.com"
vadk:port="443"
vadk:hostOS=""
vadk:login="mashmore"
vadk:password="d2F0ZXJtYXJr"
vadk:passwordFormat="base64"
vadk:path="/tmp"
vadk:datastore="esx02local-fast"
vadk:datacenter="ha-datacenter"
vadk:managedESX="esx02.bnr.perforce.com"
vadk:resourcePool=""
vadk:fileLogin="root"
vadk:filePassword=""
vadk:filePasswordFormat="plaintext"
vadk:fileProto="scp"
vadk:filePath="/tmp"
vadk:vmrunPath=""
vadk:wsXDisplay=":0.0"
vadk:provisioningVMName=""/>
<vadk:VmhostProduct vadk:name="ESX" vadk:majorVersion="4"/>
</vadk:ProvisioningEngine>
<!-- all timeouts are in seconds -->
<vadk:ProvisioningTimeouts
vadk:boot="600"
vadk:poweroff="25"
vadk:hang="7200"
vadk:sshWaitTime="120"
vadk:scpOperationTime="300"
vadk:scpAutoYesWaitTime="2"
vadk:systemCmdWaitTime="60"
vadk:systemCmdMaxTime="7200"/>
<vadk:removeAgentPackage>true</vadk:removeAgentPackage>
<vadk:removeTransientVM>true</vadk:removeTransientVM>
<vadk:CheckPostInstallLog>true</vadk:CheckPostInstallLog>
<vadk:PreInstallShellScript>#!/bin/bash
# Enable the following lines for reducing the space occupied for the
# operating system by uninstalling potentially unneeded packages. The script
# template is located at /opt/vmware/etc/footprint and should be used with
# appropriate verification.
if true; then
cut_pkgs_wrapper=run_cut_pkgs.sh
cut_pkgs_url=http://[VADK.localIP]/build/[VADK.buildID]/script/$cut_pkgs_wrapper
wget_err="/tmp/wget_err.log"
wget_opt="-nH --cut-dirs=2 -nv"
echo Download run_cut_pkgs.sh
wget $wget_opt -P /tmp $cut_pkgs_url 2>$wget_err 1>/dev/null
if [ $? -ne 0 ]; then
errmsg=`cat $wget_err`
echo Abort: $errmsg
else
echo Execute run_cut_pkgs.sh
chmod +x /tmp/$cut_pkgs_wrapper
/tmp/$cut_pkgs_wrapper
rm -f /tmp/$cut_pkgs_wrapper $wget_err
fi
fi
# Don't use default repositories; hardcoded to GB.
# Use mirrors to find nearest repository to appliance instead.
(
uri=mirror://mirrors.ubuntu.com/mirrors.txt
rel=precise
com='main restricted universe multiverse'
echo deb $uri $rel $com
echo deb $uri $rel-updates $com
echo deb $uri $rel-backports $com
echo deb $uri $rel-security $com
) > /etc/apt/sources.list.d/mirrors.list
chmod 644 /etc/apt/sources.list.d/mirrors.list
mv /etc/apt/sources.list /etc/apt/sources.list.default
</vadk:PreInstallShellScript>
<vadk:PostInstallShellScript>#!/bin/bash
# n.b. Perforce developers: don't use this section. It removes files out
# of /usr/share such as man pages, defeating their inclusion.
# Enable the following lines for reducing the space occupied for the
# operating system by deleting potentially unneeded files. The script
# template is located at /opt/vmware/etc/footprint and should be used with
# appropriate verification.
if false; then
cut_files_wrapper=run_cut_files.sh
cut_files_url=http://[VADK.localIP]/build/[VADK.buildID]/script/$cut_files_wrapper
wget_err="/tmp/wget_err.log"
wget_opt="-nH --cut-dirs=2 -nv"
echo Download run_cut_files.sh
wget $wget_opt -P /tmp $cut_files_url 2>$wget_err 1>/dev/null
if [ $? -ne 0 ]; then
errmsg=`cat $wget_err`
echo Abort: $errmsg
else
echo Execute run_cut_files.sh
chmod +x /tmp/$cut_files_wrapper
/tmp/$cut_files_wrapper
rm -f /tmp/$cut_files_wrapper $wget_err
fi
fi
# 2013-06-10 perforce.com :
# The vami tools include their own version of various shared libraries like
# libncurses and libpam, but they are incomplete: they don't provide their
# own terminfo files or pam plugin modules. And naturally, these libs
# aren't fully compatible with ubuntu12's configuration files and plugins.
#
# Since they're at the same major version numbers as the system libraries,
# get rid of the vmware-supplied ones.
rm /opt/vmware/lib/libpam.so* /opt/vmware/lib/libncurses.so*
ldconfig
# Oh and also, the vami tools hardcode the full path to the PAM modules.
# That's unnecessary and the path is wrong for Ubuntu 12 anyway.
for cf in /etc/pam.d/vami-sfcb /etc/pam.d/vmtoolsd
do
if [ -f $cf ]; then
sed --follow-symlinks -i.orig 's=/lib64/security/==' $cf
fi
done
# 2014-06-11 perforce.com:
# Add our public repository
echo "deb http://package.perforce.com/apt/ubuntu/ precise release" \
> /etc/apt/sources.list.d/perforce.list
apt-key add /etc/apt/perforce.pubkey
rm -f /etc/apt/perforce.pubkey
# 2013-07-30 perforce.com:
# Replace Apache's security configuration file with this stricter one.
# The changes here are driven from a security audit
cat <<APACHE_SECURITY > /etc/apache2/conf.d/security
ServerTokens Prod
ServerSignature Off
TraceEnable off
<IfModule mod_ssl.c>
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
SSLCompression off
</IfModule>
APACHE_SECURITY
</vadk:PostInstallShellScript>
</Section>
<!--
The combination of a network device in ovf:VirtualHardwareSection_Type
an entry in ovf:NetworkSection_Type describe a network.
-->
<Section xsi:type="ovf:NetworkSection_Type">
<Info>List of logical networks used in the package</Info>
<Network ovf:name="Network 1">
<Description>Network 1</Description>
</Network>
</Section>
<!--
The combination of a disk device in ovf:VirtualHardwareSection_Type,
an entry in ovf:DiskSection_Type, and optionally entries in
vadk:DiskPartitionSection_Type describe a disk, referenced by ovf:diskId
-->
<Section xsi:type="ovf:DiskSection_Type">
<Info>List of the virtual disks and partitions needed</Info>
<Disk ovf:diskId="system"
ovf:fileRef="system.vmdk"
ovf:capacity="40960"
ovf:capacityAllocationUnits="MegaBytes"
ovf:format="http://www.vmware.com/specifications/vmdk.html#sparse"/>
</Section>
<!--
The vadk:DiskPartitioningMechanismSection_Type section is used
to declare that disks use LVM, or the default, fdisk.
For each disk, referenced by vadk:diskId, the vadk:mechanism
parameter can be either "fdisk" or "lvm".
<vadk:Disk vadk:diskId="data1" vadk:mechanism="lvm"/>
<vadk:Disk vadk:diskId="data2" vadk:mechanism="lvm"/>
-->
<Section xsi:type="vadk:DiskPartitioningMechanismSection_Type">
<Info/>
<vadk:Disk vadk:diskId="system" vadk:mechanism="fdisk"/>
</Section>
<Section xsi:type="vadk:DiskPartitionSection_Type">
<Info/>
<vadk:Partition vadk:diskId="system"
vadk:bootable="1"
vadk:fs="ext3"
vadk:mount="/boot"
vadk:size="256"/>
<vadk:Partition vadk:diskId="system"
vadk:bootable="0"
vadk:fs="swap"
vadk:mount=""
vadk:size="2048"/>
<vadk:Partition vadk:diskId="system"
vadk:bootable="0"
vadk:fs="ext3"
vadk:mount="/"
vadk:size="32768"/>
</Section>
<Section xsi:type="vadk:VMWConfigSection_Type">
<Info>
VMW Config elements in this element will be passed directly
to the OVF output descriptor without interpretation
</Info>
<!-- vmw:Config only supports specifying sync time with host for ESX/VC 4.1 -->
<vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="TRUE"/>
</Section>
<Section xsi:type="vadk:ExistingVMSection_Type" vadk:active="false">
<Info/>
<vadk:EVMInstallScript
vadk:template="[VADK.vadkRoot]/etc/build/templates/.unknownOS/linux/apt_deb/evm_install.xsl"/>
<vadk:PreInstallScript
vadk:template="[VADK.vadkRoot]/etc/build/templates/.unknownOS/linux/apt_deb/preinstall.xsl"
vadk:output="[VADK.stageDir]/preinstall.sh"/>
<vadk:BaseInfo vadk:buildid="" vadk:agentInstalled="true"/>
</Section>
</ovf:Envelope>