mirror of
https://github.com/postmannen/ctrl.git
synced 2025-01-18 21:59:30 +00:00
added helper script that uses yaml template for sending messages
This commit is contained in:
parent
0f590472fd
commit
abf82a8e4b
1 changed files with 77 additions and 0 deletions
77
scripts/clifoldertemplate.sh
Executable file
77
scripts/clifoldertemplate.sh
Executable file
|
@ -0,0 +1,77 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Helper script for sending command scripts to Steward.
|
||||||
|
# Uses a template.yaml file and fils in the shell variables
|
||||||
|
# specified within the template.
|
||||||
|
# If no template file exist a default template.yaml file
|
||||||
|
# will be created.
|
||||||
|
# The template.yaml file can be modified to suit your own
|
||||||
|
# needs
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# ./clifoldertemplate.sh myship1,myship2 /bin/bash 'ls -l /etc'
|
||||||
|
#
|
||||||
|
# The scripts takes three arguments:
|
||||||
|
# First: A single node name, or a comma separated list of more node names.
|
||||||
|
# Seconds: The path to the interpreter as seen on the node the message is sent to.
|
||||||
|
# Third: The actual command execute specified within single quotes.
|
||||||
|
|
||||||
|
# Create template is used when no template file is found,
|
||||||
|
# and will create a default template.yaml file.
|
||||||
|
function createTemplate() {
|
||||||
|
cat >"$PWD"/template.yaml <<EOF
|
||||||
|
- toNodes:
|
||||||
|
- \${node}
|
||||||
|
method: REQCliCommand
|
||||||
|
methodArgs:
|
||||||
|
- ${shell}
|
||||||
|
- -c
|
||||||
|
- echo "--------------------\${node}----------------------" && ${command}
|
||||||
|
replyMethod: REQToFileAppend
|
||||||
|
retryWait: 5
|
||||||
|
ACKTimeout: 10
|
||||||
|
retries: 1
|
||||||
|
replyACKTimeout: 10
|
||||||
|
replyRetries: 1
|
||||||
|
methodTimeout: 10
|
||||||
|
replyMethodTimeout: 10
|
||||||
|
directory: ./data/
|
||||||
|
fileName: debug.log
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "No toNode supplied"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z "$2" ]; then
|
||||||
|
echo "No shell path supplied"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z "$3" ]; then
|
||||||
|
echo "No cmd supplied"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
nodes=$1
|
||||||
|
export shell=$2
|
||||||
|
export command=$3
|
||||||
|
|
||||||
|
# Check if the template file exist
|
||||||
|
if [ ! -f template.yaml ]; then
|
||||||
|
echo "did not find the template file, will create default template file"
|
||||||
|
createTemplate
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=',' read -r -a array <<<"$nodes"
|
||||||
|
|
||||||
|
for node in "${array[@]}"; do
|
||||||
|
export node
|
||||||
|
|
||||||
|
line=$(envsubst <template.yaml)
|
||||||
|
echo "$line" >"$PWD"/msg-"$node".yaml
|
||||||
|
|
||||||
|
cp msg-"$node".yaml ./readfolder
|
||||||
|
done
|
Loading…
Add table
Reference in a new issue