committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 148 additions and 0 deletions
@ -0,0 +1,148 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
# Deploy-hook to very simply copy files to set directories and then |
|||
# execute whatever reloadcmd the admin needs afterwards. This can be |
|||
# useful for configurations where the "multideploy" hook (in development) |
|||
# is used or when an admin wants ACME.SH to renew certs but needs to |
|||
# manually configure deployment via an external script |
|||
# (e.g. The deploy-freenas script for TrueNAS Core/Scale |
|||
# https://github.com/danb35/deploy-freenas/ ) |
|||
# |
|||
# If the same file is configured for the certificate key |
|||
# and the certificate and/or full chain, a combined PEM file will |
|||
# be output instead. |
|||
# |
|||
# Environment variables to be utilized are as follows: |
|||
# |
|||
# DEPLOY_LOCALCOPY_CERTKEY - /path/to/target/cert.key |
|||
# DEPLOY_LOCALCOPY_CERTIFICATE - /path/to/target/cert.cer |
|||
# DEPLOY_LOCALCOPY_FULLCHAIN - /path/to/target/fullchain.cer |
|||
# DEPLOY_LOCALCOPY_CA - /path/to/target/ca.cer |
|||
# DEPLOY_LOCALCOPY_PFX - /path/to/target/cert.pfx |
|||
# DEPLOY_LOCALCOPY_RELOADCMD - "echo 'this is my cmd'" |
|||
|
|||
######## Public functions ##################### |
|||
|
|||
#domain keyfile certfile cafile fullchain |
|||
localcopy_deploy() { |
|||
_cdomain="$1" |
|||
_ckey="$2" |
|||
_ccert="$3" |
|||
_cca="$4" |
|||
_cfullchain="$5" |
|||
_cpfx="$6" |
|||
|
|||
_debug _cdomain "$_cdomain" |
|||
_debug _ckey "$_ckey" |
|||
_debug _ccert "$_ccert" |
|||
_debug _cca "$_cca" |
|||
_debug _cfullchain "$_cfullchain" |
|||
_debug _cpfx "$_cpfx" |
|||
|
|||
_getdeployconf DEPLOY_LOCALCOPY_CERTIFICATE |
|||
_getdeployconf DEPLOY_LOCALCOPY_CERTKEY |
|||
_getdeployconf DEPLOY_LOCALCOPY_FULLCHAIN |
|||
_getdeployconf DEPLOY_LOCALCOPY_CA |
|||
_getdeployconf DEPLOY_LOCALCOPY_RELOADCMD |
|||
_getdeployconf DEPLOY_LOCALCOPY_PFX |
|||
_combined_target="" |
|||
_combined_srccert="" |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_CERTKEY" ] && |
|||
{ [ "$DEPLOY_LOCALCOPY_CERTKEY" = "$DEPLOY_LOCALCOPY_FULLCHAIN" ] || |
|||
[ "$DEPLOY_LOCALCOPY_CERTKEY" = "$DEPLOY_LOCALCOPY_CERTIFICATE" ]; }; then |
|||
|
|||
_combined_target="$DEPLOY_LOCALCOPY_CERTKEY" |
|||
_savedeployconf DEPLOY_LOCALCOPY_CERTKEY "$DEPLOY_LOCALCOPY_CERTKEY" |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_CERTKEY" = "$DEPLOY_LOCALCOPY_CERTIFICATE" ]; then |
|||
_combined_srccert="$_ccert" |
|||
_savedeployconf DEPLOY_LOCALCOPY_CERTIFICATE "$DEPLOY_LOCALCOPY_CERTIFICATE" |
|||
DEPLOY_LOCALCOPY_CERTIFICATE="" |
|||
fi |
|||
if [ "$DEPLOY_LOCALCOPY_CERTKEY" = "$DEPLOY_LOCALCOPY_FULLCHAIN" ]; then |
|||
_combined_srccert="$_cfullchain" |
|||
_savedeployconf DEPLOY_LOCALCOPY_FULLCHAIN "$DEPLOY_LOCALCOPY_FULLCHAIN" |
|||
DEPLOY_LOCALCOPY_FULLCHAIN="" |
|||
fi |
|||
DEPLOY_LOCALCOPY_CERTKEY="" |
|||
_info "Creating combined PEM at $_combined_target" |
|||
_tmpfile="$(mktemp)" |
|||
if ! cat "$_combined_srccert" "$_ckey" >"$_tmpfile"; then |
|||
_err "Failed to build combined PEM file" |
|||
return 1 |
|||
fi |
|||
if ! mv "$_tmpfile" "$_combined_target"; then |
|||
_err "Failed to move combined PEM into place" |
|||
return 1 |
|||
fi |
|||
fi |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_CERTIFICATE" ]; then |
|||
_info "Copying certificate" |
|||
_debug "Copying $_ccert to $DEPLOY_LOCALCOPY_CERTIFICATE" |
|||
if ! eval "cp $_ccert $DEPLOY_LOCALCOPY_CERTIFICATE"; then |
|||
_err "Failed to copy certificate, aborting." |
|||
return 1 |
|||
fi |
|||
fi |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_CERTKEY" ]; then |
|||
_info "Copying certificate key" |
|||
_debug "Copying $_ckey to $DEPLOY_LOCALCOPY_CERTKEY" |
|||
if ! eval "cp $_ckey $DEPLOY_LOCALCOPY_CERTKEY"; then |
|||
_err "Failed to copy certificate key, aborting." |
|||
return 1 |
|||
fi |
|||
_savedeployconf DEPLOY_LOCALCOPY_CERTKEY "$DEPLOY_LOCALCOPY_CERTKEY" |
|||
fi |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_FULLCHAIN" ]; then |
|||
_info "Copying fullchain" |
|||
_debug "Copying $_cfullchain to $DEPLOY_LOCALCOPY_FULLCHAIN" |
|||
if ! eval "cp $_cfullchain $DEPLOY_LOCALCOPY_FULLCHAIN"; then |
|||
_err "Failed to copy fullchain, aborting." |
|||
return 1 |
|||
fi |
|||
_savedeployconf DEPLOY_LOCALCOPY_FULLCHAIN "$DEPLOY_LOCALCOPY_FULLCHAIN" |
|||
fi |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_CA" ]; then |
|||
_info "Copying CA" |
|||
_debug "Copying $_cca to $DEPLOY_LOCALCOPY_CA" |
|||
if ! eval "cp $_cca $DEPLOY_LOCALCOPY_CA"; then |
|||
_err "Failed to copy CA, aborting." |
|||
return 1 |
|||
fi |
|||
_savedeployconf DEPLOY_LOCALCOPY_CA "$DEPLOY_LOCALCOPY_CA" |
|||
fi |
|||
|
|||
if [ "$DEPLOY_LOCALCOPY_PFX" ]; then |
|||
_info "Copying PFX" |
|||
_debug "Copying $_cpfx to $DEPLOY_LOCALCOPY_PFX" |
|||
if ! eval "cp $_cpfx $DEPLOY_LOCALCOPY_PFX"; then |
|||
_err "Failed to copy PFX, aborting." |
|||
return 1 |
|||
fi |
|||
_savedeployconf DEPLOY_LOCALCOPY_PFX "$DEPLOY_LOCALCOPY_PFX" |
|||
fi |
|||
|
|||
_reload=$DEPLOY_LOCALCOPY_RELOADCMD |
|||
_debug "Running reloadcmd $_reload" |
|||
|
|||
if [ -z "$_reload" ]; then |
|||
_info "Reloadcmd not provided, skipping." |
|||
else |
|||
_info "Reloading" |
|||
if eval "$_reload"; then |
|||
_info "Reload successful." |
|||
_savedeployconf DEPLOY_LOCALCOPY_RELOADCMD "$DEPLOY_LOCALCOPY_RELOADCMD" "base64" |
|||
else |
|||
_err "Reload failed." |
|||
return 1 |
|||
fi |
|||
fi |
|||
|
|||
_info "$(__green "'localcopy' deploy success")" |
|||
return 0 |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue