create-vmachine: General cleanup and remove Puppet stuff
parent
4b357bee36
commit
0f5a69d908
|
@ -6,27 +6,26 @@ STAGE_TBZ="$2"
|
||||||
VMNAME=$(echo "${DOMNAME}" | tr '[:upper:]' '[:lower:]')
|
VMNAME=$(echo "${DOMNAME}" | tr '[:upper:]' '[:lower:]')
|
||||||
VM_FQDN="${VMNAME}.$(hostname -d)"
|
VM_FQDN="${VMNAME}.$(hostname -d)"
|
||||||
|
|
||||||
VG=vmachines
|
if [[ -z $STAGE_TBZ || -z $VMNAME ]]; then
|
||||||
POOL=LVM
|
echo "Usage: $(basename $0) <vmname> <stage3-tarball>" >&2
|
||||||
DOMXML_TMPL=/etc/libvirt/qemu/_template.xml
|
exit 2
|
||||||
MOUNTPOINT=/mnt/new_vmachine
|
fi
|
||||||
PUPPETMASTER=$(hostname -f)
|
|
||||||
PORTAGE_PROFILE="default/linux/amd64/13.0"
|
: ${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)
|
PORTDIR=$(portageq envvar PORTDIR)
|
||||||
DISTDIR=$(portageq envvar DISTDIR)
|
DISTDIR=$(portageq envvar DISTDIR)
|
||||||
PKGDIR=$(portageq envvar PKGDIR)
|
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
|
if lvdisplay ${VG}/${VMNAME} >/dev/null 2>&1; then
|
||||||
echo "ERROR: Logical volume ${VMNAME} already exists in group ${VG}" >&2
|
echo "ERROR: Logical volume ${VMNAME} already exists in group ${VG}" >&2
|
||||||
exit 2
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Creating storage volume..."
|
echo "Creating storage volume..."
|
||||||
|
@ -88,36 +87,6 @@ chmod u+x "${MOUNTPOINT}"/build-base.sh
|
||||||
chroot "${MOUNTPOINT}" /build-base.sh
|
chroot "${MOUNTPOINT}" /build-base.sh
|
||||||
rm "${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..."
|
echo "Setting hostname..."
|
||||||
sed -i "s/localhost/${VMNAME}/" "${MOUNTPOINT}"/etc/conf.d/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}
|
vgchange -an ${VMNAME}
|
||||||
|
|
||||||
echo "Creating libvirt domain..."
|
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..."
|
echo "Starting virtual machine..."
|
||||||
virsh -c qemu:///system start ${DOMNAME}
|
virsh -c qemu:///system start ${DOMNAME}
|
||||||
|
|
Loading…
Reference in New Issue