Add announce script to script servers
This commit is contained in:
parent
88b3c1b4fb
commit
ac6430df51
3 changed files with 176 additions and 2 deletions
|
@ -18,7 +18,8 @@ class sunetdrive::script (
|
||||||
$backup_server = $config['backup_server']
|
$backup_server = $config['backup_server']
|
||||||
$rclone_url = 'https://downloads.rclone.org/rclone-current-linux-amd64.deb'
|
$rclone_url = 'https://downloads.rclone.org/rclone-current-linux-amd64.deb'
|
||||||
$local_path = '/tmp/rclone-current-linux-amd64.deb'
|
$local_path = '/tmp/rclone-current-linux-amd64.deb'
|
||||||
$singlenodes = hiera('singlenodes')
|
$singlenodes = lookup('singlenodes')
|
||||||
|
$multinodes = keys(lookup('multinode_mapping'))
|
||||||
|
|
||||||
if $customer == 'mdu' {
|
if $customer == 'mdu' {
|
||||||
$eppn_suffix = 'mdh.se'
|
$eppn_suffix = 'mdh.se'
|
||||||
|
@ -297,6 +298,16 @@ class sunetdrive::script (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if $customer == 'common' {
|
if $customer == 'common' {
|
||||||
|
$multinode_passwords = $multinodes.map | $index, $customer | {
|
||||||
|
safe_hiera("${customer}_admin_app_password")
|
||||||
|
}
|
||||||
|
file { '/root/tasks/announce.sh':
|
||||||
|
ensure => file,
|
||||||
|
content => template('sunetdrive/script/multinodeannounce.erb.sh'),
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => '0700',
|
||||||
|
}
|
||||||
file { '/root/tasks/backupmultinodedb.sh':
|
file { '/root/tasks/backupmultinodedb.sh':
|
||||||
ensure => file,
|
ensure => file,
|
||||||
content => template('sunetdrive/script/backupmultinodedb.erb.sh'),
|
content => template('sunetdrive/script/backupmultinodedb.erb.sh'),
|
||||||
|
@ -326,7 +337,7 @@ class sunetdrive::script (
|
||||||
ok_criteria => ['exit_status=0','max_age=2d'],
|
ok_criteria => ['exit_status=0','max_age=2d'],
|
||||||
warn_criteria => ['exit_status=1','max_age=3d'],
|
warn_criteria => ['exit_status=1','max_age=3d'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$singlenodes.each | $singlenode| {
|
$singlenodes.each | $singlenode| {
|
||||||
$multinode = hiera_hash('multinode_mapping')[$singlenode]['server']
|
$multinode = hiera_hash('multinode_mapping')[$singlenode]['server']
|
||||||
$multinodeserver = "${multinode}.${site_name}"
|
$multinodeserver = "${multinode}.${site_name}"
|
||||||
|
@ -377,6 +388,13 @@ class sunetdrive::script (
|
||||||
warn_criteria => ['exit_status=1','max_age=3d'],
|
warn_criteria => ['exit_status=1','max_age=3d'],
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
file { '/root/tasks/announce.sh':
|
||||||
|
ensure => file,
|
||||||
|
content => template('sunetdrive/script/announce.erb.sh'),
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => '0700',
|
||||||
|
}
|
||||||
file { '/root/tasks/backupmultinodedb.sh':
|
file { '/root/tasks/backupmultinodedb.sh':
|
||||||
ensure => absent,
|
ensure => absent,
|
||||||
}
|
}
|
||||||
|
|
75
templates/script/announce.erb.sh
Executable file
75
templates/script/announce.erb.sh
Executable file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
VALID_ARGS=$(getopt -o cdghi:m:s: --long create,delete,get,help,id:,message:,subject: -- "$@")
|
||||||
|
# shellcheck disable=SC2181
|
||||||
|
if [[ ${?} -ne 0 ]]; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "${0}: -c|--create -m|--message <'Your announcement goes here'> -s|--subject <Your subject goes here>"
|
||||||
|
echo "${0}: -d|--delete -i|--id <announcement_id>"
|
||||||
|
echo "${0}: -g|--get"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eval set -- "${VALID_ARGS}"
|
||||||
|
# shellcheck disable=SC2078
|
||||||
|
while [ : ]; do
|
||||||
|
case "$1" in
|
||||||
|
-c | --create)
|
||||||
|
method='POST'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-d | --delete)
|
||||||
|
method='DELETE'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-g | --get)
|
||||||
|
method='GET'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h | --help)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
-i | --id)
|
||||||
|
argument="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-m | --message)
|
||||||
|
message="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-s | --subject)
|
||||||
|
subject="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${method} == 'DELETE' ]] && [[ -z ${argument} ]]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
if [[ ${method} == 'POST' ]]; then
|
||||||
|
if [[ -z ${message} ]] || [[ -z ${subject} ]]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
argument='{"subject":"'${subject}'","message":"'${message}'", "plainMessage":"'${message}'", "groups": [], "userId": "admin", "activities": false, "notifications": true, "emails": false, "comments": false }'
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl_cmd(){
|
||||||
|
local method="${1}"
|
||||||
|
if [[ ${method} == 'POST' ]] && [[ -n ${2} ]]; then
|
||||||
|
local payload=(-d "${2}" -H "Content-Type: application/json")
|
||||||
|
elif [[ ${method} == 'DELETE' ]] && [[ -n ${2} ]]; then
|
||||||
|
local id="/${2}"
|
||||||
|
fi
|
||||||
|
local admin_app_password="<%= @admin_app_password %>"
|
||||||
|
domain="$(hostname -d)"
|
||||||
|
curl -X "${method}" -u "admin:${admin_app_password}" "${payload[@]}" -H 'OCS-APIRequest: true' "https://${domain}/ocs/v2.php/apps/announcementcenter/api/v1/announcements${id}"
|
||||||
|
}
|
||||||
|
curl_cmd "${method}" "${argument}"
|
||||||
|
|
81
templates/script/multinodeannounce.erb.sh
Executable file
81
templates/script/multinodeannounce.erb.sh
Executable file
|
@ -0,0 +1,81 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
VALID_ARGS=$(getopt -o cdghi:m:s: --long create,delete,get,help,id:,message:,subject: -- "$@")
|
||||||
|
# shellcheck disable=SC2181
|
||||||
|
if [[ ${?} -ne 0 ]]; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "${0}: -c|--create -m|--message <'Your announcement goes here'> -s|--subject <Your subject goes here>"
|
||||||
|
echo "${0}: -d|--delete -i|--id <announcement_id>"
|
||||||
|
echo "${0}: -g|--get"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eval set -- "${VALID_ARGS}"
|
||||||
|
# shellcheck disable=SC2078
|
||||||
|
while [ : ]; do
|
||||||
|
case "$1" in
|
||||||
|
-c | --create)
|
||||||
|
method='POST'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-d | --delete)
|
||||||
|
method='DELETE'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-g | --get)
|
||||||
|
method='GET'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h | --help)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
-i | --id)
|
||||||
|
argument="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-m | --message)
|
||||||
|
message="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-s | --subject)
|
||||||
|
subject="${2}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${method} == 'DELETE' ]] && [[ -z ${argument} ]]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
if [[ ${method} == 'POST' ]]; then
|
||||||
|
if [[ -z ${message} ]] || [[ -z ${subject} ]]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
argument='{"subject":"'${subject}'","message":"'${message}'", "plainMessage":"'${message}'", "groups": [], "userId": "admin", "activities": false, "notifications": true, "emails": false, "comments": false }'
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl_cmd(){
|
||||||
|
local admin_app_password="${1}"
|
||||||
|
local customer="${2}"
|
||||||
|
local method="${3}"
|
||||||
|
if [[ ${method} == 'POST' ]] && [[ -n ${4} ]]; then
|
||||||
|
local payload=(-d "${4}" -H "Content-Type: application/json")
|
||||||
|
elif [[ ${method} == 'DELETE' ]] && [[ -n ${4} ]]; then
|
||||||
|
local id="/${4}"
|
||||||
|
fi
|
||||||
|
domain="$(hostname -d)"
|
||||||
|
curl -X "${method}" -u "admin:${admin_app_password}" "${payload[@]}" -H 'OCS-APIRequest: true' "https://${customer}.${domain}/ocs/v2.php/apps/announcementcenter/api/v1/announcements${id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
#<%- index = 0 -%>
|
||||||
|
#<%- @multinodes.each do |customer| -%>
|
||||||
|
curl_cmd "<%= @multinode_passwords[index] %>" "<%= customer %>" "${method}" "${argument}"
|
||||||
|
#<%- index += 1 -%>
|
||||||
|
#<%- end -%>
|
||||||
|
|
Loading…
Add table
Reference in a new issue