Browse Source

Add/delete projects

master
root 1 year ago
parent
commit
ee32ec10d3
  1. 0
      .gitignore
  2. 25
      README.md
  3. 17
      eqx-cluster-create
  4. 39
      eqx-create-org
  5. 57
      eqx-create-project
  6. 32
      eqx-delete-project
  7. 33
      eqx-delete-project-forced
  8. 4
      eqx-get-project-names
  9. 31
      eqx-get-project-uuid
  10. 3
      packet-cli.json

0
.gitignore

25
README.md

@ -1,2 +1,27 @@
# eqx
## Token
export PACKET_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Or
cat $HOME/.packet-cli.json
{
"token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}
## Dependencies
apt install jq
git clone https://github.com/packethost/packet-cli
mkdir -p ~/bin
wget -O ~/bin/packet https://github.com/packethost/packet-cli/releases/download/0.1.1/packet-linux-amd64
chmod +x ~/bin/packet

17
eqx-cluster-create

@ -0,0 +1,17 @@
#!/bin/bash
# eqx-cluster-create
#
# Create a cluster of bare metal on Equinix
#
# Usage:
# eqx-cluster-create
# Example:
# eqx-cluster-create
#
set -x
#
EQXRANDHOST=`dd bs=12 count=1 if=/dev/random 2>/dev/null | base64 | tr [:upper:] [:lower:] | tr -dc [:alpha:]`

39
eqx-create-org

@ -0,0 +1,39 @@
#!/bin/bash
# Usage:
# eqx-create-org [name]
# Example:
# eqx-create-org fooorg
# eqx-create-org fooorg --description "barrog" --website "http://127.0.0.1"
set -x
packet \
organization \
create \
--name "$@"
exit
Example:
packet organization create -n [name]
Usage:
packet organization create [flags]
Flags:
-d, --description string Description of the organization
-h, --help help for create
-l, --logo string Logo URL]
-n, --name string Name of the organization
-t, --twitter string Twitter URL of the organization
-w, --website string Website URL of the organization
Global Flags:
--config string Path to JSON or YAML configuration file
--exclude strings Comma seperated Href references to collapse in results, may be dotted three levels deep
--include strings Comma seperated Href references to expand in results, may be dotted three levels deep
-j, --json JSON output
--search string Search keyword for use in 'get' actions. Search is not supported by all resources.
-y, --yaml YAML output

57
eqx-create-project

@ -0,0 +1,57 @@
#!/bin/bash
# eqx-create-project
# Create an Equinix Project.
# If no name is given, a random string is chosen
#
# Usage:
# eqx-create-project [name]
# Example:
# eqx-create-project
# eqx-create-project fooproject
EQXRAND=`dd bs=12 count=1 if=/dev/random 2>/dev/null | base64 | tr [:upper:] [:lower:] | tr -dc [:alpha:]`
EQXPROJECT="$1"
if [[ $1 == "" ]]
then EQXPROJECT=$EQXRAND
fi
packet \
project \
create \
--name \
$EQXPROJECT \
2>/dev/null | \
grep -v -e "^+" -e "CREATED" | \
cut -f 4 -d " "
exit
2021/01/23 14:45:25 [DEBUG] POST https://api.equinix.com/metal/v1/projects
+--------------------------------------+--------------+----------------------+
| ID | NAME | CREATED |
+--------------------------------------+--------------+----------------------+
| 7ac35d0b-17be-4e76-a15a-cc68a3f3d81b | udmlbdyxsouf | 2021-01-23T21:45:26Z |
+--------------------------------------+--------------+----------------------+
packet project create --name [project_name]
Usage:
packet project create [flags]
Flags:
-h, --help help for create
-n, --name string Name of the project
-o, --organization-id string UUID of the organization
-m, --payment-method-id string UUID of the payment method
Global Flags:
--config string Path to JSON or YAML configuration file
--exclude strings Comma seperated Href references to collapse in results, may be dotted three levels deep
--include strings Comma seperated Href references to expand in results, may be dotted three levels deep
-j, --json JSON output
--search string Search keyword for use in 'get' actions. Search is not supported by all resources.
-y, --yaml YAML output

32
eqx-delete-project

@ -0,0 +1,32 @@
#!/bin/bash
# eqx-delete-project
# Delete an Equinix Project.
#
# Usage:
# eqx-delete-project [name]
# Example:
# eqx-delete-project fooproject
#set -x
EQXPROJECT="$1"
if [[ $1 == "" ]]
then \
echo -e "Need project name, such as:\n"
eqx-get-project-names
echo
exit
fi
EQXPROJECTID=`eqx-get-project-uuid $EQXPROJECT`
packet \
project \
delete \
--id \
$EQXPROJECTID \
2>/dev/null
exit

33
eqx-delete-project-forced

@ -0,0 +1,33 @@
#!/bin/bash
# eqx-delete-project
# Delete an Equinix Project.
#
# Usage:
# eqx-delete-project [name]
# Example:
# eqx-delete-project fooproject
#set -x
EQXPROJECT="$1"
if [[ $1 == "" ]]
then \
echo -e "Need project name, such as:\n"
eqx-get-project-names
echo
exit
fi
EQXPROJECTID=`eqx-get-project-uuid $EQXPROJECT`
packet \
project \
delete \
--force \
--id \
$EQXPROJECTID \
2>/dev/null
exit

4
eqx-get-project-names

@ -0,0 +1,4 @@
#!/bin/bash
eqx-get-projects | jq --raw-output '.[] | {name}' | grep name | cut -f 2 -d ":" | sed -e 's/ //g' -e 's/"//g'

31
eqx-get-project-uuid

@ -0,0 +1,31 @@
#!/bin/bash
# eqx-get-project-uuid
#
# XXX not real stable way to do this...
#
# Get project UUID from a name
#
# Usage:
# eqx-get-project-uuid [name]
# Example:
# eqx-get-project-uuid fooproject
EQXPROJECT="$1"
if [[ $1 == "" ]]
then \
echo -e "Need project name, such as:\n"
eqx-get-project-names
echo
exit
fi
# XXX this...
packet \
project \
get \
--project $EQXPROJECT \
2>/dev/null | \
grep -w " $EQXPROJECT " | \
cut -f 2 -d " "

3
packet-cli.json

@ -0,0 +1,3 @@
{
"token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}
Loading…
Cancel
Save