create-vmachine: General cleanup and remove Puppet stuff

master
Dustin C. Hatch 2013-09-22 11:52:06 -05:00
parent 4b357bee36
commit 0f5a69d908
1 changed files with 14 additions and 45 deletions

View File

@ -6,27 +6,26 @@ STAGE_TBZ="$2"
VMNAME=$(echo "${DOMNAME}" | tr '[:upper:]' '[:lower:]')
VM_FQDN="${VMNAME}.$(hostname -d)"
VG=vmachines
POOL=LVM
DOMXML_TMPL=/etc/libvirt/qemu/_template.xml
MOUNTPOINT=/mnt/new_vmachine
PUPPETMASTER=$(hostname -f)
PORTAGE_PROFILE="default/linux/amd64/13.0"
if [[ -z $STAGE_TBZ || -z $VMNAME ]]; then
echo "Usage: $(basename $0) <vmname> <stage3-tarball>" >&2
exit 2
fi
: ${VG:=vmachines}
: ${POOL:=LVM}
: ${DOMXML_TMPL:=/etc/libvirt/qemu/_template.xml}
: ${MOUNTPOINT:=/mnt/new_vmachine}
: ${PORTAGE_PROFILE:="default/linux/amd64/13.0"}
set -e
PORTDIR=$(portageq envvar PORTDIR)
DISTDIR=$(portageq envvar DISTDIR)
PKGDIR=$(portageq envvar PKGDIR)
if [[ -z $STAGE_TBZ || -z $VMNAME ]]; then
echo "Usage: $(basename $0) <vmname> <stage3-tarball>" >&2
exit 1
fi
set -e
if lvdisplay ${VG}/${VMNAME} >/dev/null 2>&1; then
echo "ERROR: Logical volume ${VMNAME} already exists in group ${VG}" >&2
exit 2
exit 1
fi
echo "Creating storage volume..."
@ -88,36 +87,6 @@ chmod u+x "${MOUNTPOINT}"/build-base.sh
chroot "${MOUNTPOINT}" /build-base.sh
rm "${MOUNTPOINT}"/build-base.sh
echo "Installing Puppet..."
cat <<EOF > "${MOUNTPOINT}"/build-puppet.sh
#!/bin/bash
set -e
export EMERGE_DEFAULT_OPTS="--binpkg-respect-use=y"
export FEATURES="-news"
RUBY_TARGETS=ruby18 USE="-gdbm minimal old-output" emerge -jkv puppet
rc-update add puppet default
EOF
chmod u+x "${MOUNTPOINT}"/build-puppet.sh
chroot "${MOUNTPOINT}" /build-puppet.sh
rm "${MOUNTPOINT}"/build-puppet.sh
echo "Configuring Puppet..."
cfg_head=$(mktemp)
cfg_foot=$(mktemp)
awk '/\[agent\]/ {exit} {print}' "${MOUNTPOINT}"/etc/puppet/puppet.conf > ${cfg_head}
awk '/\[agent\]/,0' "${MOUNTPOINT}"/etc/puppet/puppet.conf > ${cfg_foot}
cat ${cfg_head} > "${MOUNTPOINT}"/etc/puppet/puppet.conf
cat <<EOF >> "${MOUNTPOINT}"/etc/puppet/puppet.conf
server = ${PUPPETMASTER}
pluginsync = true
EOF
cat ${cfg_foot} >> "${MOUNTPOINT}"/etc/puppet/puppet.conf
rm ${cfg_head} ${cfg_foot}
echo "Setting hostname..."
sed -i "s/localhost/${VMNAME}/" "${MOUNTPOINT}"/etc/conf.d/hostname
@ -157,6 +126,6 @@ umount "${MOUNTPOINT}"/{tmp,proc,sys,run,usr,var,home,}
vgchange -an ${VMNAME}
echo "Creating libvirt domain..."
m4 -P -DNAME="${DOMNAME}" "${DOMXML_TMPL}" | virsh -c qemu:///system define /dev/stdin
virsh -c qemu:///system define <(m4 -P -DNAME="${DOMNAME}" "${DOMXML_TMPL}")
echo "Starting virtual machine..."
virsh -c qemu:///system start ${DOMNAME}