Adding final ESXI deployment code
This commit is contained in:
6
ESXi/Packer/_common/metadata.sh
Executable file
6
ESXi/Packer/_common/metadata.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh -eux
|
||||
|
||||
mkdir -p /etc;
|
||||
cp /tmp/bento-metadata.json /etc/bento-metadata.json;
|
||||
chmod 0444 /etc/bento-metadata.json;
|
||||
rm -f /tmp/bento-metadata.json;
|
||||
36
ESXi/Packer/_common/minimize.sh
Normal file
36
ESXi/Packer/_common/minimize.sh
Normal file
@@ -0,0 +1,36 @@
|
||||
#!/bin/sh -eux
|
||||
|
||||
case "$PACKER_BUILDER_TYPE" in
|
||||
qemu) exit 0 ;;
|
||||
esac
|
||||
|
||||
# Whiteout root
|
||||
count=$(df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}')
|
||||
count=$(($count-1))
|
||||
dd if=/dev/zero of=/tmp/whitespace bs=1M count=$count || echo "dd exit code $? is suppressed";
|
||||
rm /tmp/whitespace
|
||||
|
||||
# Whiteout /boot
|
||||
count=$(df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}')
|
||||
count=$(($count-1))
|
||||
dd if=/dev/zero of=/boot/whitespace bs=1M count=$count || echo "dd exit code $? is suppressed";
|
||||
rm /boot/whitespace
|
||||
|
||||
set +e
|
||||
swapuuid="`/sbin/blkid -o value -l -s UUID -t TYPE=swap`";
|
||||
case "$?" in
|
||||
2|0) ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
set -e
|
||||
|
||||
if [ "x${swapuuid}" != "x" ]; then
|
||||
# Whiteout the swap partition to reduce box size
|
||||
# Swap is disabled till reboot
|
||||
swappart="`readlink -f /dev/disk/by-uuid/$swapuuid`";
|
||||
/sbin/swapoff "$swappart";
|
||||
dd if=/dev/zero of="$swappart" bs=1M || echo "dd exit code $? is suppressed";
|
||||
/sbin/mkswap -U "$swapuuid" "$swappart";
|
||||
fi
|
||||
|
||||
sync;
|
||||
21
ESXi/Packer/_common/motd.sh
Normal file
21
ESXi/Packer/_common/motd.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/bin/sh -eux
|
||||
|
||||
bento='
|
||||
This system is built by the Bento project by Chef Software
|
||||
More information can be found at https://github.com/chef/bento'
|
||||
|
||||
if [ -d /etc/update-motd.d ]; then
|
||||
MOTD_CONFIG='/etc/update-motd.d/99-bento'
|
||||
|
||||
cat >> "$MOTD_CONFIG" <<BENTO
|
||||
#!/bin/sh
|
||||
|
||||
cat <<'EOF'
|
||||
$bento
|
||||
EOF
|
||||
BENTO
|
||||
|
||||
chmod 0755 "$MOTD_CONFIG"
|
||||
else
|
||||
echo "$bento" >> /etc/motd
|
||||
fi
|
||||
20
ESXi/Packer/_common/sshd.sh
Normal file
20
ESXi/Packer/_common/sshd.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh -eux
|
||||
|
||||
SSHD_CONFIG="/etc/ssh/sshd_config"
|
||||
|
||||
# ensure that there is a trailing newline before attempting to concatenate
|
||||
sed -i -e '$a\' "$SSHD_CONFIG"
|
||||
|
||||
USEDNS="UseDNS no"
|
||||
if grep -q -E "^[[:space:]]*UseDNS" "$SSHD_CONFIG"; then
|
||||
sed -i "s/^\s*UseDNS.*/${USEDNS}/" "$SSHD_CONFIG"
|
||||
else
|
||||
echo "$USEDNS" >>"$SSHD_CONFIG"
|
||||
fi
|
||||
|
||||
GSSAPI="GSSAPIAuthentication no"
|
||||
if grep -q -E "^[[:space:]]*GSSAPIAuthentication" "$SSHD_CONFIG"; then
|
||||
sed -i "s/^\s*GSSAPIAuthentication.*/${GSSAPI}/" "$SSHD_CONFIG"
|
||||
else
|
||||
echo "$GSSAPI" >>"$SSHD_CONFIG"
|
||||
fi
|
||||
19
ESXi/Packer/_common/vagrant.sh
Normal file
19
ESXi/Packer/_common/vagrant.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh -eux
|
||||
|
||||
# set a default HOME_DIR environment variable if not set
|
||||
HOME_DIR="${HOME_DIR:-/home/vagrant}";
|
||||
|
||||
pubkey_url="https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub";
|
||||
mkdir -p $HOME_DIR/.ssh;
|
||||
if command -v wget >/dev/null 2>&1; then
|
||||
wget --no-check-certificate "$pubkey_url" -O $HOME_DIR/.ssh/authorized_keys;
|
||||
elif command -v curl >/dev/null 2>&1; then
|
||||
curl --insecure --location "$pubkey_url" > $HOME_DIR/.ssh/authorized_keys;
|
||||
elif command -v fetch >/dev/null 2>&1; then
|
||||
fetch -am -o $HOME_DIR/.ssh/authorized_keys "$pubkey_url";
|
||||
else
|
||||
echo "Cannot download vagrant public key";
|
||||
exit 1;
|
||||
fi
|
||||
chown -R vagrant $HOME_DIR/.ssh;
|
||||
chmod -R go-rwsx $HOME_DIR/.ssh;
|
||||
34
ESXi/Packer/_common/vmware.sh
Normal file
34
ESXi/Packer/_common/vmware.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/sh -eux
|
||||
|
||||
# set a default HOME_DIR environment variable if not set
|
||||
HOME_DIR="${HOME_DIR:-/home/vagrant}";
|
||||
|
||||
case "$PACKER_BUILDER_TYPE" in
|
||||
vmware-iso|vmware-vmx)
|
||||
|
||||
# make sure we have /sbin in our path. RHEL systems lack this
|
||||
PATH=/sbin:$PATH
|
||||
export PATH
|
||||
|
||||
mkdir -p /tmp/vmware;
|
||||
mkdir -p /tmp/vmware-archive;
|
||||
mount -o loop $HOME_DIR/linux.iso /tmp/vmware;
|
||||
|
||||
TOOLS_PATH="`ls /tmp/vmware/VMwareTools-*.tar.gz`";
|
||||
VER="`echo "${TOOLS_PATH}" | cut -f2 -d'-'`";
|
||||
MAJ_VER="`echo ${VER} | cut -d '.' -f 1`";
|
||||
|
||||
echo "VMware Tools Version: $VER";
|
||||
|
||||
tar xzf ${TOOLS_PATH} -C /tmp/vmware-archive;
|
||||
if [ "${MAJ_VER}" -lt "10" ]; then
|
||||
/tmp/vmware-archive/vmware-tools-distrib/vmware-install.pl --default;
|
||||
else
|
||||
/tmp/vmware-archive/vmware-tools-distrib/vmware-install.pl --force-install;
|
||||
fi
|
||||
umount /tmp/vmware;
|
||||
rm -rf /tmp/vmware;
|
||||
rm -rf /tmp/vmware-archive;
|
||||
rm -f $HOME_DIR/*.iso;
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user