mirror of
https://github.com/postmannen/ctrl.git
synced 2024-12-14 12:37:31 +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…
Reference in a new issue