You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.0 KiB
67 lines
2.0 KiB
4 years ago
|
|
||
|
# eqx-cluster-create
|
||
|
#
|
||
|
# Create a cluster of bare metal on Equinix.
|
||
|
# Generates random project name if none is given.
|
||
|
# Using existing names will cause issues!
|
||
|
#
|
||
|
# Usage:
|
||
|
# eqx-cluster-create [project name]
|
||
|
# Example:
|
||
|
# eqx-cluster-create foocluster
|
||
|
# eqx-cluster-create
|
||
|
#
|
||
|
# XXX check name isn't in use.
|
||
|
|
||
|
#set -x
|
||
|
|
||
|
# Set static variables here
|
||
|
EQXSPOTMAX="0.18"
|
||
|
EQXFACILITY="da11"
|
||
|
EQXOS="debian_10"
|
||
|
EQXPLAN="c3.small.x86"
|
||
|
EQXTAGS="cluster"
|
||
|
|
||
|
# Probably leave these variables alone
|
||
|
EQXPROJECT="$1"
|
||
|
if [[ $1 == "" ]]
|
||
|
then EQXPROJECT=`eqx-create-project`
|
||
|
else eqx-create-project "$EQXPROJECT"
|
||
|
fi
|
||
|
|
||
|
EQXHOSTNAME=`dd bs=12 count=1 if=/dev/random 2>/dev/null | base64 | tr [:upper:] [:lower:] | tr -dc [:alpha:]`
|
||
|
EQXPROJECTID=`eqx-get-project-uuid $EQXPROJECT`
|
||
|
|
||
|
echo "Spot Max: $EQXSPOTMAX"
|
||
|
echo "Project: $EQXPROJECT"
|
||
|
echo "ProjectID: $EQXPROJECTID"
|
||
|
echo "Facility: $EQXFACILITY"
|
||
|
echo "Plan: $EQXPLAN"
|
||
|
echo "Hostname: $EQXHOSTNAME"
|
||
|
echo "OS: $EQXOS"
|
||
|
echo "Tag: $EQXTAGS"
|
||
|
|
||
|
#cat >> tmpfoo <<EOF
|
||
|
packet device create \
|
||
|
--plan "$EQXPLAN" \
|
||
|
--spot-instance \
|
||
|
--spot-price-max="$EQXSPOTMAX" \
|
||
|
--project-id "$EQXPROJECTID" \
|
||
|
--facility "$EQXFACILITY" \
|
||
|
--hostname "$EQXHOSTNAME" \
|
||
|
--operating-system "$EQXOS" \
|
||
|
--tags "$EQXTAGS"
|
||
|
#EOF
|
||
|
|
||
|
exit
|
||
|
-c, --customdata string Custom data
|
||
|
-r, --hardware-reservation-id string UUID of the hardware reservation
|
||
|
-i, --ipxe-script-url string URL to the iPXE script
|
||
|
-v, --public-ipv4-subnet-size int Size of the public IPv4 subnet
|
||
|
-T, --termination-time string Device termination time: --termination-time="15:04:05"
|
||
|
-u, --userdata string Userdata for device initialization (can not be used with --userdata-file)
|
||
|
--userdata-file string Path to a userdata file for device initialization (can not be used with --userdata)
|
||
|
-a, --always-pxe
|
||
|
-b, --billing-cycle string Billing cycle (default "hourly")
|
||
|
|