From 94d9fdf9c541f3b53b657e5f4685e111ba7e4a6c Mon Sep 17 00:00:00 2001 From: eddul-h <31884309+eddul-h@users.noreply.github.com> Date: Wed, 13 Oct 2021 15:23:49 +0200 Subject: [PATCH 1/5] Create openmediavault.sh A deploy hook for openmediavault 5 --- deploy/openmediavault.sh | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 deploy/openmediavault.sh diff --git a/deploy/openmediavault.sh b/deploy/openmediavault.sh new file mode 100644 index 00000000..f01928bf --- /dev/null +++ b/deploy/openmediavault.sh @@ -0,0 +1,61 @@ +#!/usr/bin/bash + +######## Public functions ##################### + +#domain keyfile certfile cafile fullchain +openmediavault_deploy() { + _cdomain="$1" + _ckey="$2" + _ccert="$3" + _cca="$4" + _cfullchain="$5" + + _debug _cdomain "$_cdomain" + _debug _ckey "$_ckey" + _debug _ccert "$_ccert" + _debug _cca "$_cca" + _debug _cfullchain "$_cfullchain" + + if [ -z "$DEPLOY_OMV_USER" ] + then + DEPLOY_OMV_USER="admin" + fi + + _uuid=$(omv-rpc -u "$DEPLOY_OMV_USER" 'CertificateMgmt' 'getList' '{"start": 0, "limit": -1}' | jq -r '.data[] | select(.name=="/CN='$_cdomain'") | .uuid') + if [ -z "$_uuid" ] + then + echo "Domain $_cdomain has no certificate in Openmediavault, creating it!" + _uuid=$(omv-rpc -u "$DEPLOY_OMV_USER" 'CertificateMgmt' 'create' '{"cn": "test.example.com", "size": 4096, "days": 3650, "c": "", "st": "", "l": "", "o": "", "ou": "", "email": ""}' | jq -r '.uuid') + + if [ -z "$_uuid" ] + then + echo "An error occured while creating the certificate" + return 1 + fi + fi + + echo "Domain $_cdomain has uuid: $_uuid" + _fullchain=$(cat "$_cfullchain" | jq -aRs .) + _key=$(cat "$_ckey" | jq -aRs .) + _date=$(echo "$(date)") + +# echo "$_fullchain" +# echo "$_key" + + echo "Updating key and certificate in Openmediavault" + _command="omv-rpc -u $DEPLOY_OMV_USER 'CertificateMgmt' 'set' '{\"uuid\":\"$_uuid\", \"certificate\":$_fullchain, \"privatekey\":$_key, \"comment\":\"acme.sh deployed $_date\"}'" + _result=$(eval "$_command") + +# echo "$_command" +# echo "$_result" + + echo "Asking Openmediavault to apply changes... (this could take some time, hang in there)" + _command="omv-rpc -u $DEPLOY_OMV_USER 'Config' 'applyChanges' '{\"modules\":[\"certificates\"], \"force\": false}'" + _result=$(eval "$_command") + +# echo "$_command" +# echo "$_result" + + return 0 + +} From 437f052fe274688058a79ddc3725a51683ba3ec7 Mon Sep 17 00:00:00 2001 From: eddul-h <31884309+eddul-h@users.noreply.github.com> Date: Thu, 14 Oct 2021 10:10:45 +0200 Subject: [PATCH 2/5] Code standard fixes --- deploy/openmediavault.sh | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/deploy/openmediavault.sh b/deploy/openmediavault.sh index f01928bf..f7cb4fd2 100644 --- a/deploy/openmediavault.sh +++ b/deploy/openmediavault.sh @@ -16,45 +16,42 @@ openmediavault_deploy() { _debug _cca "$_cca" _debug _cfullchain "$_cfullchain" - if [ -z "$DEPLOY_OMV_USER" ] - then + if [ -z "$DEPLOY_OMV_USER" ]; then DEPLOY_OMV_USER="admin" fi + # shellcheck disable=SC2086 _uuid=$(omv-rpc -u "$DEPLOY_OMV_USER" 'CertificateMgmt' 'getList' '{"start": 0, "limit": -1}' | jq -r '.data[] | select(.name=="/CN='$_cdomain'") | .uuid') - if [ -z "$_uuid" ] - then + if [ -z "$_uuid" ]; then echo "Domain $_cdomain has no certificate in Openmediavault, creating it!" _uuid=$(omv-rpc -u "$DEPLOY_OMV_USER" 'CertificateMgmt' 'create' '{"cn": "test.example.com", "size": 4096, "days": 3650, "c": "", "st": "", "l": "", "o": "", "ou": "", "email": ""}' | jq -r '.uuid') - if [ -z "$_uuid" ] - then + if [ -z "$_uuid" ]; then echo "An error occured while creating the certificate" return 1 fi fi echo "Domain $_cdomain has uuid: $_uuid" - _fullchain=$(cat "$_cfullchain" | jq -aRs .) - _key=$(cat "$_ckey" | jq -aRs .) - _date=$(echo "$(date)") + _fullchain=$(jq <"$_cfullchain" -aRs .) + _key=$(jq <"$_ckey" -aRs .) -# echo "$_fullchain" -# echo "$_key" + #echo "$_fullchain" + #echo "$_key" echo "Updating key and certificate in Openmediavault" - _command="omv-rpc -u $DEPLOY_OMV_USER 'CertificateMgmt' 'set' '{\"uuid\":\"$_uuid\", \"certificate\":$_fullchain, \"privatekey\":$_key, \"comment\":\"acme.sh deployed $_date\"}'" + _command="omv-rpc -u $DEPLOY_OMV_USER 'CertificateMgmt' 'set' '{\"uuid\":\"$_uuid\", \"certificate\":$_fullchain, \"privatekey\":$_key, \"comment\":\"acme.sh deployed $(date)\"}'" _result=$(eval "$_command") -# echo "$_command" -# echo "$_result" + #echo "$_command" + #echo "$_result" echo "Asking Openmediavault to apply changes... (this could take some time, hang in there)" _command="omv-rpc -u $DEPLOY_OMV_USER 'Config' 'applyChanges' '{\"modules\":[\"certificates\"], \"force\": false}'" _result=$(eval "$_command") -# echo "$_command" -# echo "$_result" + #echo "$_command" + #echo "$_result" return 0 From 53dba6bfafcdede53971a6398a4bf13dd8252330 Mon Sep 17 00:00:00 2001 From: eddul-h <31884309+eddul-h@users.noreply.github.com> Date: Fri, 15 Oct 2021 10:08:17 +0200 Subject: [PATCH 3/5] Update openmediavault.sh Improve log/debug, fix shellcheck SC2034 --- deploy/openmediavault.sh | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/deploy/openmediavault.sh b/deploy/openmediavault.sh index f7cb4fd2..220f59ce 100644 --- a/deploy/openmediavault.sh +++ b/deploy/openmediavault.sh @@ -23,36 +23,35 @@ openmediavault_deploy() { # shellcheck disable=SC2086 _uuid=$(omv-rpc -u "$DEPLOY_OMV_USER" 'CertificateMgmt' 'getList' '{"start": 0, "limit": -1}' | jq -r '.data[] | select(.name=="/CN='$_cdomain'") | .uuid') if [ -z "$_uuid" ]; then - echo "Domain $_cdomain has no certificate in Openmediavault, creating it!" + _info "[OMV deploy-hook] Domain $_cdomain has no certificate in Openmediavault, creating it!" _uuid=$(omv-rpc -u "$DEPLOY_OMV_USER" 'CertificateMgmt' 'create' '{"cn": "test.example.com", "size": 4096, "days": 3650, "c": "", "st": "", "l": "", "o": "", "ou": "", "email": ""}' | jq -r '.uuid') if [ -z "$_uuid" ]; then - echo "An error occured while creating the certificate" + _err "[OMB deploy-hook] An error occured while creating the certificate" return 1 fi fi - echo "Domain $_cdomain has uuid: $_uuid" + _info "[OMV deploy-hook] Domain $_cdomain has uuid: $_uuid" _fullchain=$(jq <"$_cfullchain" -aRs .) _key=$(jq <"$_ckey" -aRs .) - #echo "$_fullchain" - #echo "$_key" + _debug _fullchain "$_fullchain" + _debug _key "$_key" - echo "Updating key and certificate in Openmediavault" + _info "[OMV deploy-hook] Updating key and certificate in Openmediavault" _command="omv-rpc -u $DEPLOY_OMV_USER 'CertificateMgmt' 'set' '{\"uuid\":\"$_uuid\", \"certificate\":$_fullchain, \"privatekey\":$_key, \"comment\":\"acme.sh deployed $(date)\"}'" _result=$(eval "$_command") - #echo "$_command" - #echo "$_result" + _debug _command "$_command" + _debug _result "$_result" - echo "Asking Openmediavault to apply changes... (this could take some time, hang in there)" + _info "[OMV deploy-hook] Asking Openmediavault to apply changes... (this could take some time, hang in there)" _command="omv-rpc -u $DEPLOY_OMV_USER 'Config' 'applyChanges' '{\"modules\":[\"certificates\"], \"force\": false}'" _result=$(eval "$_command") - #echo "$_command" - #echo "$_result" + _debug _command "$_command" + _debug _result "$_result" return 0 - } From 8d8ba72f07b6717ca454914d9429ed130ead8622 Mon Sep 17 00:00:00 2001 From: eddul-h <31884309+eddul-h@users.noreply.github.com> Date: Fri, 15 Oct 2021 18:18:37 +0200 Subject: [PATCH 4/5] Update openmediavault.sh shfmt fix --- deploy/openmediavault.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/openmediavault.sh b/deploy/openmediavault.sh index 220f59ce..c0ca88fe 100644 --- a/deploy/openmediavault.sh +++ b/deploy/openmediavault.sh @@ -37,7 +37,7 @@ openmediavault_deploy() { _key=$(jq <"$_ckey" -aRs .) _debug _fullchain "$_fullchain" - _debug _key "$_key" + _debug _key "$_key" _info "[OMV deploy-hook] Updating key and certificate in Openmediavault" _command="omv-rpc -u $DEPLOY_OMV_USER 'CertificateMgmt' 'set' '{\"uuid\":\"$_uuid\", \"certificate\":$_fullchain, \"privatekey\":$_key, \"comment\":\"acme.sh deployed $(date)\"}'" From 78e718d5b6aa26d96c33ce7739fb4353e8f8d237 Mon Sep 17 00:00:00 2001 From: neil Date: Sat, 6 Nov 2021 12:18:22 +0800 Subject: [PATCH 5/5] Update openmediavault.sh --- deploy/openmediavault.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/openmediavault.sh b/deploy/openmediavault.sh index c0ca88fe..323d6774 100644 --- a/deploy/openmediavault.sh +++ b/deploy/openmediavault.sh @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/usr/bin/env sh ######## Public functions #####################