Switch shellscripts to customer pool

This commit is contained in:
j3s 2020-05-20 16:37:45 -05:00
parent 5a4c67d202
commit 773aa78ac4
2 changed files with 16 additions and 13 deletions

View File

@ -1,23 +1,28 @@
#!/bin/sh #!/bin/sh
#
## check avaliable RAM and IPv4s # check available RAM and IPv4s
RAM_BYTES_TO_ALLOCATE="$1" RAM_BYTES_TO_ALLOCATE="$1"
RAM_BYTES_AVAILABLE=$(grep -E "^(size|memory_available_bytes)" /proc/spl/kstat/zfs/arcstats | awk '{sum+=$3} END {printf "%.0f", sum}')
RAM_BYTES_REMAINDER="$((RAM_BYTES_AVAILABLE - RAM_BYTES_TO_ALLOCATE))"
if echo "$RAM_BYTES_TO_ALLOCATE" | grep -vqE "^[0-9]+$"; then if echo "$RAM_BYTES_TO_ALLOCATE" | grep -vqE "^[0-9]+$"; then
echo "RAM_BYTES_TO_ALLOCATE \"$RAM_BYTES_TO_ALLOCATE\" must be an integer" echo "RAM_BYTES_TO_ALLOCATE \"$RAM_BYTES_TO_ALLOCATE\" must be an integer"
exit 1 exit 1
fi fi
#100GB # I picked 10GB arbitrarily
RAM_LIMIT=100000000000 if [ "$RAM_BYTES_REMAINDER" -le $((10 * 1024 * 1024 * 1024)) ]; then
echo "VM is requesting more RAM than $(hostname -f) has available."
echo "Bytes requested: $RAM_BYTES_TO_ALLOCATE"
echo "Bytes available: $RAM_BYTES_AVAILABLE"
exit 1
fi
## compare current allocated ram + RAM_BYTES_TO_ALLOCATE with RAM_LIMIT IPV4_LIMIT=60
IPV4_COUNT=$(grep ip-add /var/lib/libvirt/dnsmasq/virbr2.status | wc -l)
IPV4_LIMIT=26 if [ "$IPV4_COUNT" -ge "$IPV4_LIMIT" ]; then
IPV4_COUNT=$(grep ip-add /var/lib/libvirt/dnsmasq/virbr1.status | wc -l)
if [ $IPV4_COUNT -gt $IPV4_LIMIT ]; then
echo "IPv4 address limit reached" echo "IPv4 address limit reached"
exit 1 exit 1
fi fi

View File

@ -66,14 +66,12 @@ virt-install \
--os-variant generic \ --os-variant generic \
--virt-type kvm \ --virt-type kvm \
--graphics vnc,listen=127.0.0.1 \ --graphics vnc,listen=127.0.0.1 \
--network network=public1,filterref=clean-traffic,model=virtio \ --network network=public2,filterref=clean-traffic,model=virtio \
--import \ --import \
--print-xml > "$xml" --print-xml > "$xml"
# --network network=public6,filterref=clean-traffic,model=virtio
chmod 0600 "$xml" "$disk" "$cdrom" chmod 0600 "$xml" "$disk" "$cdrom"
virsh define "$xml" virsh define "$xml"
virsh start "$vmname" virsh start "$vmname"
echo "success" echo "success"