2023-01-26 13:26:26 +00:00
|
|
|
#!/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}
|
2024-11-19 02:48:42 +00:00
|
|
|
method: cliCommand
|
2023-01-26 13:26:26 +00:00
|
|
|
methodArgs:
|
|
|
|
- ${shell}
|
|
|
|
- -c
|
|
|
|
- echo "--------------------\${node}----------------------" && ${command}
|
2024-11-19 02:48:42 +00:00
|
|
|
replyMethod: fileAppend
|
2023-01-26 13:26:26 +00:00
|
|
|
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
|