diff options
author | Jose M. Guisado <jguisado@soleta.eu> | 2022-11-13 18:49:59 +0100 |
---|---|---|
committer | Jose M. Guisado <jguisado@soleta.eu> | 2022-11-13 18:49:59 +0100 |
commit | 5e546fbee20bce6c78ccf562c9cde43500fe1b0c (patch) | |
tree | d38da62a3f91601e04b98a63d99b33f16a4f9568 | |
parent | dff298d421afcbe2bdd2246be961d5e963b7fdd0 (diff) |
examples: add examples folder
deploy-ubuntu.sh is a simple bash script combining multiple ogcli
commands used to format and deploy some image.
poweroff.cron is a sample cron file used to schedule client
poweroff.
-rwxr-xr-x | examples/deploy-ubuntu.sh | 42 | ||||
-rw-r--r-- | examples/poweroff.cron | 11 |
2 files changed, 53 insertions, 0 deletions
diff --git a/examples/deploy-ubuntu.sh b/examples/deploy-ubuntu.sh new file mode 100755 index 0000000..94541a4 --- /dev/null +++ b/examples/deploy-ubuntu.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +function check_client_status { + local try=0 + local ip="$1" + local state="$2" + local max_tries=${3-10} + + while [ "$(./ogcli list clients | jq ".clients[] | select(.state != \"$state\" and .addr == \"$ip\")")" == "" ] + do + if [ "$try" -eq "$max_tries" ]; then + echo "Timeout!" + exit + fi + + try=$((try+1)) + echo "Waiting for client to exit from state $state..." + sleep 10 + done +} + +IP="192.168.56.11" + +echo "Sending WoL to client $IP" +./ogcli send wol --client-ip "$IP" + +check_client_status $IP "WOL_SENT" +echo "Client is ready... partitioning client" +./ogcli setup disk --type dos --num 1 --part 1,LINUX,EXT4,40G --part 4,CACHE,CACHE,10G --format 1,4 --client-ip "$IP" +# ./ogcli send refresh --client-ip "$IP" + +check_client_status $IP "BSY" +echo "Client is ready... restoring image" +./ogcli restore image --id 1 --disk 1 --part 1 --type tiptorrent --client-ip "$IP" + +check_client_status $IP "BSY" 100 +echo "Client is ready... setting boot mode to first disk first partition" +./ogcli set mode --mode 11 --client-ip "$IP" + +check_client_status $IP "BSY" +echo "Client is ready... shutting down client" +./ogcli send poweroff --client-ip "$IP" diff --git a/examples/poweroff.cron b/examples/poweroff.cron new file mode 100644 index 0000000..da4c476 --- /dev/null +++ b/examples/poweroff.cron @@ -0,0 +1,11 @@ +# This cron task automatically powers off all clients +# specified at 22:00 local time starting Monday until +# Friday. +# +# You can specify clients to shutdown using several parameters +# like --client-ip, --room-id, or even --center-id. +# +# Usually on debian based distros one can insert cron tasks +# using "crontab -e". + +0 22 * * 1-5 ogcli send poweroff --client-ip 192.168.56.11 |