Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
9fb5bb62
Commit
9fb5bb62
authored
May 14, 2022
by
PM Extra
Browse files
refact ssh hook to use deploy config
parent
ed58f320
Changes
2
Show whitespace changes
Inline
Side-by-side
acme.sh
View file @
9fb5bb62
...
@@ -2332,6 +2332,26 @@ _readdomainconf() {
...
@@ -2332,6 +2332,26 @@ _readdomainconf() {
_read_conf "$DOMAIN_CONF" "$1"
_read_conf "$DOMAIN_CONF" "$1"
}
}
#_migratedomainconf oldkey newkey base64encode
_migratedomainconf() {
_old_key="$1"
_new_key="$2"
_b64encode="$3"
_value=$(_readdomainconf "$_old_key")
if [ -z "$_value" ]; then
return 1 # oldkey is not found
fi
_savedomainconf "$_new_key" "$_value" "$_b64encode"
_cleardomainconf "$_old_key"
_debug "Domain config $_old_key has been migrated to $_new_key"
}
#_migratedeployconf oldkey newkey base64encode
_migratedeployconf() {
_migratedomainconf "$1" "SAVED_$2" "$3" ||
_migratedomainconf "SAVED_$1" "SAVED_$2" "$3" # try only when oldkey itself is not found
}
#key value base64encode
#key value base64encode
_savedeployconf() {
_savedeployconf() {
_savedomainconf "SAVED_$1" "$2" "$3"
_savedomainconf "SAVED_$1" "$2" "$3"
...
...
deploy/ssh.sh
View file @
9fb5bb62
...
@@ -23,8 +23,8 @@
...
@@ -23,8 +23,8 @@
# export DEPLOY_SSH_BACKUP="" # yes or no, default to yes or previously saved value
# export DEPLOY_SSH_BACKUP="" # yes or no, default to yes or previously saved value
# export DEPLOY_SSH_BACKUP_PATH=".acme_ssh_deploy" # path on remote system. Defaults to .acme_ssh_deploy
# export DEPLOY_SSH_BACKUP_PATH=".acme_ssh_deploy" # path on remote system. Defaults to .acme_ssh_deploy
# export DEPLOY_SSH_MULTI_CALL="" # yes or no, default to no or previously saved value
# export DEPLOY_SSH_MULTI_CALL="" # yes or no, default to no or previously saved value
# export DEPLOY_SSH_USE_SCP="" yes or no
, default to no
# export DEPLOY_SSH_USE_SCP="" yes or no, default to no
# export DEPLOY_SSH_SCP_CMD="" defaults to "scp -q
"
# export DEPLOY_SSH_SCP_CMD="" defaults to "scp -q"
#
#
######## Public functions #####################
######## Public functions #####################
...
@@ -44,110 +44,134 @@ ssh_deploy() {
...
@@ -44,110 +44,134 @@ ssh_deploy() {
_debug _cfullchain
"
$_cfullchain
"
_debug _cfullchain
"
$_cfullchain
"
# USER is required to login by SSH to remote host.
# USER is required to login by SSH to remote host.
_migratedeployconf Le_Deploy_ssh_user DEPLOY_SSH_USER
_getdeployconf DEPLOY_SSH_USER
_getdeployconf DEPLOY_SSH_USER
_debug2 DEPLOY_SSH_USER
"
$DEPLOY_SSH_USER
"
_debug2 DEPLOY_SSH_USER
"
$DEPLOY_SSH_USER
"
if
[
-z
"
$DEPLOY_SSH_USER
"
]
;
then
if
[
-z
"
$DEPLOY_SSH_USER
"
]
;
then
if
[
-z
"
$Le_Deploy_ssh_user
"
]
;
then
_err
"DEPLOY_SSH_USER not defined."
_err
"DEPLOY_SSH_USER not defined."
return
1
return
1
fi
fi
else
_savedeployconf DEPLOY_SSH_USER
"
$DEPLOY_SSH_USER
"
Le_Deploy_ssh_user
=
"
$DEPLOY_SSH_USER
"
_savedeployconf Le_Deploy_ssh_user
"
$Le_Deploy_ssh_user
"
fi
# SERVER is optional. If not provided then use _cdomain
# SERVER is optional. If not provided then use _cdomain
_migratedeployconf Le_Deploy_ssh_server DEPLOY_SSH_SERVER
_getdeployconf DEPLOY_SSH_SERVER
_getdeployconf DEPLOY_SSH_SERVER
_debug2 DEPLOY_SSH_SERVER
"
$DEPLOY_SSH_SERVER
"
_debug2 DEPLOY_SSH_SERVER
"
$DEPLOY_SSH_SERVER
"
if
[
-n
"
$DEPLOY_SSH_SERVER
"
]
;
then
if
[
-z
"
$DEPLOY_SSH_SERVER
"
]
;
then
Le_Deploy_ssh_server
=
"
$DEPLOY_SSH_SERVER
"
DEPLOY_SSH_SERVER
=
"
$_cdomain
"
_savedeployconf Le_Deploy_ssh_server
"
$Le_Deploy_ssh_server
"
elif
[
-z
"
$Le_Deploy_ssh_server
"
]
;
then
Le_Deploy_ssh_server
=
"
$_cdomain
"
fi
fi
_savedeployconf DEPLOY_SSH_SERVER
"
$DEPLOY_SSH_SERVER
"
# CMD is optional. If not provided then use ssh
# CMD is optional. If not provided then use ssh
_migratedeployconf Le_Deploy_ssh_cmd DEPLOY_SSH_CMD
_getdeployconf DEPLOY_SSH_CMD
_getdeployconf DEPLOY_SSH_CMD
_debug2 DEPLOY_SSH_CMD
"
$DEPLOY_SSH_CMD
"
_debug2 DEPLOY_SSH_CMD
"
$DEPLOY_SSH_CMD
"
if
[
-n
"
$DEPLOY_SSH_CMD
"
]
;
then
if
[
-z
"
$DEPLOY_SSH_CMD
"
]
;
then
Le_Deploy_ssh_cmd
=
"
$DEPLOY_SSH_CMD
"
DEPLOY_SSH_CMD
=
"ssh -T"
_savedeployconf Le_Deploy_ssh_cmd
"
$Le_Deploy_ssh_cmd
"
elif
[
-z
"
$Le_Deploy_ssh_cmd
"
]
;
then
Le_Deploy_ssh_cmd
=
"ssh -T"
fi
# USE_SCP is optional. If not provided then default to previously saved
# value (which may be undefined... equivalent to "no").
if
[
"
$DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
Le_Deploy_ssh_use_scp
=
"yes"
_savedeployconf Le_Deploy_ssh_use_scp
"
$Le_Deploy_ssh_use_scp
"
elif
[
"
$DEPLOY_SSH_USE_SCP
"
=
"no"
]
;
then
Le_Deploy_ssh_use_scp
=
""
_cleardomainconf Le_Deploy_ssh_use_scp
fi
# SCP_CMD is optional. If not provided then use scp
if
[
-n
"
$DEPLOY_SSH_SCP_CMD
"
]
;
then
Le_Deploy_ssh_scp_cmd
=
"
$DEPLOY_SSH_SCP_CMD
"
_savedeployconf Le_Deploy_ssh_scp_cmd
"
$Le_Deploy_ssh_scp_cmd
"
elif
[
-z
"
$Le_Deploy_ssh_scp_cmd
"
]
;
then
Le_Deploy_ssh_scp_cmd
=
"scp -q"
fi
fi
_savedeployconf DEPLOY_SSH_CMD
"
$DEPLOY_SSH_CMD
"
# BACKUP is optional. If not provided then default to previously saved value or yes.
# BACKUP is optional. If not provided then default to previously saved value or yes.
_migratedeployconf Le_Deploy_ssh_backup DEPLOY_SSH_BACKUP
_getdeployconf DEPLOY_SSH_BACKUP
_getdeployconf DEPLOY_SSH_BACKUP
_debug2 DEPLOY_SSH_BACKUP
"
$DEPLOY_SSH_BACKUP
"
_debug2 DEPLOY_SSH_BACKUP
"
$DEPLOY_SSH_BACKUP
"
if
[
"
$DEPLOY_SSH_BACKUP
"
=
"no"
]
;
then
if
[
-z
"
$DEPLOY_SSH_BACKUP
"
]
;
then
Le_Deploy_ssh_backup
=
"no"
DEPLOY_SSH_BACKUP
=
"yes"
elif
[
-z
"
$Le_Deploy_ssh_backup
"
]
||
[
"
$DEPLOY_SSH_BACKUP
"
=
"yes"
]
;
then
Le_Deploy_ssh_backup
=
"yes"
fi
fi
_savedeployconf
Le_Deploy_ssh_backup
"
$Le_Deploy_ssh_backup
"
_savedeployconf
DEPLOY_SSH_BACKUP
"
$DEPLOY_SSH_BACKUP
"
# BACKUP_PATH is optional. If not provided then default to previously saved value or .acme_ssh_deploy
# BACKUP_PATH is optional. If not provided then default to previously saved value or .acme_ssh_deploy
_migratedeployconf Le_Deploy_ssh_backup_path DEPLOY_SSH_BACKUP_PATH
_getdeployconf DEPLOY_SSH_BACKUP_PATH
_getdeployconf DEPLOY_SSH_BACKUP_PATH
_debug2 DEPLOY_SSH_BACKUP_PATH
"
$DEPLOY_SSH_BACKUP_PATH
"
_debug2 DEPLOY_SSH_BACKUP_PATH
"
$DEPLOY_SSH_BACKUP_PATH
"
if
[
-n
"
$DEPLOY_SSH_BACKUP_PATH
"
]
;
then
if
[
-z
"
$DEPLOY_SSH_BACKUP_PATH
"
]
;
then
Le_Deploy_ssh_backup_path
=
"
$DEPLOY_SSH_BACKUP_PATH
"
DEPLOY_SSH_BACKUP_PATH
=
".acme_ssh_deploy"
elif
[
-z
"
$Le_Deploy_ssh_backup_path
"
]
;
then
Le_Deploy_ssh_backup_path
=
".acme_ssh_deploy"
fi
fi
_savedeployconf
Le_Deploy_ssh_backup_path
"
$Le_Deploy_ssh_backup_path
"
_savedeployconf
DEPLOY_SSH_BACKUP_PATH
"
$DEPLOY_SSH_BACKUP_PATH
"
# MULTI_CALL is optional. If not provided then default to previously saved
# MULTI_CALL is optional. If not provided then default to previously saved
# value (which may be undefined... equivalent to "no").
# value (which may be undefined... equivalent to "no").
_migratedeployconf Le_Deploy_ssh_multi_call DEPLOY_SSH_MULTI_CALL
_getdeployconf DEPLOY_SSH_MULTI_CALL
_getdeployconf DEPLOY_SSH_MULTI_CALL
_debug2 DEPLOY_SSH_MULTI_CALL
"
$DEPLOY_SSH_MULTI_CALL
"
_debug2 DEPLOY_SSH_MULTI_CALL
"
$DEPLOY_SSH_MULTI_CALL
"
if
[
"
$DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
[
-z
"
$DEPLOY_SSH_MULTI_CALL
"
]
;
then
Le_Deploy_ssh_multi_call
=
"yes"
DEPLOY_SSH_MULTI_CALL
=
"no"
_savedeployconf Le_Deploy_ssh_multi_call
"
$Le_Deploy_ssh_multi_call
"
fi
elif
[
"
$DEPLOY_SSH_MULTI_CALL
"
=
"no"
]
;
then
_savedeployconf DEPLOY_SSH_MULTI_CALL
"
$DEPLOY_SSH_MULTI_CALL
"
Le_Deploy_ssh_multi_call
=
""
_cleardomainconf Le_Deploy_ssh_multi_call
# KEYFILE is optional.
# If provided then private key will be copied to provided filename.
_migratedeployconf Le_Deploy_ssh_keyfile DEPLOY_SSH_KEYFILE
_getdeployconf DEPLOY_SSH_KEYFILE
_debug2 DEPLOY_SSH_KEYFILE
"
$DEPLOY_SSH_KEYFILE
"
if
[
-n
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
_savedeployconf DEPLOY_SSH_KEYFILE
"
$DEPLOY_SSH_KEYFILE
"
fi
# CERTFILE is optional.
# If provided then certificate will be copied or appended to provided filename.
_migratedeployconf Le_Deploy_ssh_certfile DEPLOY_SSH_CERTFILE
_getdeployconf DEPLOY_SSH_CERTFILE
_debug2 DEPLOY_SSH_CERTFILE
"
$DEPLOY_SSH_CERTFILE
"
if
[
-n
"
$DEPLOY_SSH_CERTFILE
"
]
;
then
_savedeployconf DEPLOY_SSH_CERTFILE
"
$DEPLOY_SSH_CERTFILE
"
fi
# CAFILE is optional.
# If provided then CA intermediate certificate will be copied or appended to provided filename.
_migratedeployconf Le_Deploy_ssh_cafile DEPLOY_SSH_CAFILE
_getdeployconf DEPLOY_SSH_CAFILE
_debug2 DEPLOY_SSH_CAFILE
"
$DEPLOY_SSH_CAFILE
"
if
[
-n
"
$DEPLOY_SSH_CAFILE
"
]
;
then
_savedeployconf DEPLOY_SSH_CAFILE
"
$DEPLOY_SSH_CAFILE
"
fi
# FULLCHAIN is optional.
# If provided then fullchain certificate will be copied or appended to provided filename.
_migratedeployconf Le_Deploy_ssh_fullchain DEPLOY_SSH_FULLCHAIN
_getdeployconf DEPLOY_SSH_FULLCHAIN
_debug2 DEPLOY_SSH_FULLCHAIN
"
$DEPLOY_SSH_FULLCHAIN
"
if
[
-n
"
$DEPLOY_SSH_FULLCHAIN
"
]
;
then
_savedeployconf DEPLOY_SSH_FULLCHAIN
"
$DEPLOY_SSH_FULLCHAIN
"
fi
# REMOTE_CMD is optional.
# If provided then this command will be executed on remote host.
_migratedeployconf Le_Deploy_ssh_remote_cmd DEPLOY_SSH_REMOTE_CMD
_getdeployconf DEPLOY_SSH_REMOTE_CMD
_debug2 DEPLOY_SSH_REMOTE_CMD
"
$DEPLOY_SSH_REMOTE_CMD
"
if
[
-n
"
$DEPLOY_SSH_REMOTE_CMD
"
]
;
then
_savedeployconf DEPLOY_SSH_REMOTE_CMD
"
$DEPLOY_SSH_REMOTE_CMD
"
fi
fi
# USE_SCP is optional. If not provided then default to previously saved
# USE_SCP is optional. If not provided then default to previously saved
# value (which may be undefined... equivalent to "no").
# value (which may be undefined... equivalent to "no").
if
[
"
$DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
_getdeployconf DEPLOY_SSH_USE_SCP
Le_Deploy_ssh_use_scp
=
"yes"
_debug2 DEPLOY_SSH_USE_SCP
"
$DEPLOY_SSH_USE_SCP
"
_savedeployconf Le_Deploy_ssh_use_scp
"
$Le_Deploy_ssh_use_scp
"
if
[
-z
"
$DEPLOY_SSH_USE_SCP
"
]
;
then
Le_Deploy_ssh_multi_call
=
"yes"
DEPLOY_SSH_USE_SCP
=
"no"
_savedeployconf Le_Deploy_ssh_multi_call
"
$Le_Deploy_ssh_multi_call
"
elif
[
"
$DEPLOY_SSH_USE_SCP
"
=
"no"
]
;
then
Le_Deploy_ssh_use_scp
=
""
_cleardomainconf Le_Deploy_ssh_use_scp
fi
fi
_savedeployconf DEPLOY_SSH_USE_SCP
"
$DEPLOY_SSH_USE_SCP
"
# SCP_CMD is optional. If not provided then use scp
# SCP_CMD is optional. If not provided then use scp
if
[
-n
"
$DEPLOY_SSH_SCP_CMD
"
]
;
then
_getdeployconf DEPLOY_SSH_SCP_CMD
Le_Deploy_ssh_scp_cmd
=
"
$DEPLOY_SSH_SCP_CMD
"
_debug2 DEPLOY_SSH_SCP_CMD
"
$DEPLOY_SSH_SCP_CMD
"
_savedeployconf Le_Deploy_ssh_scp_cmd
"
$Le_Deploy_ssh_scp_cmd
"
if
[
-z
"
$DEPLOY_SSH_SCP_CMD
"
]
;
then
elif
[
-z
"
$Le_Deploy_ssh_scp_cmd
"
]
;
then
DEPLOY_SSH_SCP_CMD
=
"scp -q"
Le_Deploy_ssh_scp_cmd
=
"scp -T -q "
fi
fi
_savedeployconf DEPLOY_SSH_SCP_CMD
"
$DEPLOY_SSH_SCP_CMD
"
_deploy_ssh_servers
=
$Le_Deploy_ssh_server
if
[
"
$DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
for
Le_Deploy_ssh_server
in
$_deploy_ssh_servers
;
do
DEPLOY_SSH_MULTI_CALL
=
"yes"
_info
"Using scp as alternate method for copying files. Multicall Mode is implicit"
elif
[
"
$DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
_info
"Using MULTI_CALL mode... Required commands sent in multiple calls to remote host"
else
_info
"Required commands batched and sent in single call to remote host"
fi
_deploy_ssh_servers
=
$DEPLOY_SSH_SERVER
for
DEPLOY_SSH_SERVER
in
$_deploy_ssh_servers
;
do
_ssh_deploy
_ssh_deploy
done
done
}
}
...
@@ -161,20 +185,10 @@ _ssh_deploy() {
...
@@ -161,20 +185,10 @@ _ssh_deploy() {
_local_ca_file
=
""
_local_ca_file
=
""
_local_full_file
=
""
_local_full_file
=
""
_info
"Deploy certificates to remote server
$Le_Deploy_ssh_user
@
$Le_Deploy_ssh_server
"
_info
"Deploy certificates to remote server
$DEPLOY_SSH_USER
@
$DEPLOY_SSH_SERVER
"
if
[
"
$Le_Deploy_ssh_use_scp
"
=
"yes"
]
;
then
_info
"Using scp as alternate method for copying files. Multicall Mode is implicit"
Le_Deploy_ssh_multi_call
=
"yes"
_savedeployconf Le_Deploy_ssh_multi_call
"
$Le_Deploy_ssh_multi_call
"
fi
if
[
"
$Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
_info
"Using MULTI_CALL mode... Required commands sent in multiple calls to remote host"
else
_info
"Required commands batched and sent in single call to remote host"
fi
if
[
"
$
Le_Deploy_ssh_backup
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_BACKUP
"
=
"yes"
]
;
then
_backupprefix
=
"
$
Le_Deploy_ssh_backup_path
/
$_cdomain
-backup"
_backupprefix
=
"
$
DEPLOY_SSH_BACKUP_PATH
/
$_cdomain
-backup"
_backupdir
=
"
$_backupprefix
-
$(
_utc_date |
tr
' '
'-'
)
"
_backupdir
=
"
$_backupprefix
-
$(
_utc_date |
tr
' '
'-'
)
"
# run cleanup on the backup directory, erase all older
# run cleanup on the backup directory, erase all older
# than 180 days (15552000 seconds).
# than 180 days (15552000 seconds).
...
@@ -186,7 +200,7 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -186,7 +200,7 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
_cmdstr
=
"mkdir -p
$_backupdir
;
$_cmdstr
"
_cmdstr
=
"mkdir -p
$_backupdir
;
$_cmdstr
"
_info
"Backup of old certificate files will be placed in remote directory
$_backupdir
"
_info
"Backup of old certificate files will be placed in remote directory
$_backupdir
"
_info
"Backup directories erased after 180 days."
_info
"Backup directories erased after 180 days."
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -194,19 +208,11 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -194,19 +208,11 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
# KEYFILE is optional.
# If provided then private key will be copied to provided filename.
_getdeployconf DEPLOY_SSH_KEYFILE
_debug2 DEPLOY_SSH_KEYFILE
"
$DEPLOY_SSH_KEYFILE
"
if
[
-n
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
if
[
-n
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
Le_Deploy_ssh_keyfile
=
"
$DEPLOY_SSH_KEYFILE
"
if
[
"
$DEPLOY_SSH_BACKUP
"
=
"yes"
]
;
then
_savedeployconf Le_Deploy_ssh_keyfile
"
$Le_Deploy_ssh_keyfile
"
fi
if
[
-n
"
$Le_Deploy_ssh_keyfile
"
]
;
then
if
[
"
$Le_Deploy_ssh_backup
"
=
"yes"
]
;
then
# backup file we are about to overwrite.
# backup file we are about to overwrite.
_cmdstr
=
"
$_cmdstr
cp
$
Le_Deploy_ssh_keyfile
$_backupdir
>/dev/null;"
_cmdstr
=
"
$_cmdstr
cp
$
DEPLOY_SSH_KEYFILE
$_backupdir
>/dev/null;"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -215,15 +221,16 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -215,15 +221,16 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
# copy new key into file.
# copy new key into file.
if
[
"
$
Le_Deploy_ssh_use_scp
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
# scp the file
# scp the file
if
!
_scp_remote_cmd
"
$_ckey
"
"
$
Le_Deploy_ssh_keyfile
"
;
then
if
!
_scp_remote_cmd
"
$_ckey
"
"
$
DEPLOY_SSH_KEYFILE
"
;
then
return
$_err_code
return
$_err_code
fi
fi
else
else
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_ckey
"
)
\"
>
$Le_Deploy_ssh_keyfile
;"
# ssh echo to the file
_info
"will copy private key to remote file
$Le_Deploy_ssh_keyfile
"
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_ckey
"
)
\"
>
$DEPLOY_SSH_KEYFILE
;"
if
[
"
$Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
_info
"will copy private key to remote file
$DEPLOY_SSH_KEYFILE
"
if
[
"
$DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -232,26 +239,15 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -232,26 +239,15 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
# CERTFILE is optional.
# If provided then certificate will be copied or appended to provided filename.
_getdeployconf DEPLOY_SSH_CERTFILE
_debug2 DEPLOY_SSH_CERTFILE
"
$DEPLOY_SSH_CERTFILE
"
if
[
-n
"
$DEPLOY_SSH_CERTFILE
"
]
;
then
if
[
-n
"
$DEPLOY_SSH_CERTFILE
"
]
;
then
Le_Deploy_ssh_certfile
=
"
$DEPLOY_SSH_CERTFILE
"
_savedeployconf Le_Deploy_ssh_certfile
"
$Le_Deploy_ssh_certfile
"
fi
if
[
-n
"
$Le_Deploy_ssh_certfile
"
]
;
then
_pipe
=
">"
_pipe
=
">"
if
[
"
$
Le_Deploy_ssh_certfile
"
=
"
$Le_Deploy_ssh_keyfile
"
]
;
then
if
[
"
$
DEPLOY_SSH_CERTFILE
"
=
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
# if filename is same as previous file then append.
# if filename is same as previous file then append.
_pipe
=
">>"
_pipe
=
">>"
_local_cert_file
=
$(
_mktemp
)
elif
[
"
$DEPLOY_SSH_BACKUP
"
=
"yes"
]
;
then
cat
"
$_ckey
"
>
"
$_local_cert_file
"
cat
"
$_ccert
"
>>
"
$_local_cert_file
"
elif
[
"
$Le_Deploy_ssh_backup
"
=
"yes"
]
;
then
# backup file we are about to overwrite.
# backup file we are about to overwrite.
_cmdstr
=
"
$_cmdstr
cp
$
Le_Deploy_ssh_certfile
$_backupdir
>/dev/null;"
_cmdstr
=
"
$_cmdstr
cp
$
DEPLOY_SSH_CERTFILE
$_backupdir
>/dev/null;"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -259,21 +255,22 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -259,21 +255,22 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
if
[
"
$Le_Deploy_ssh_use_scp
"
=
"yes"
]
;
then
# copy new certificate into file.
if
[
-n
"
$_local_cert_file
"
]
;
then
if
[
"
$DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
if
!
_scp_remote_cmd
"
$_local_cert_file
"
"
$Le_Deploy_ssh_certfile
"
;
then
# scp the file
return
$_err_code
_local_cert_file
=
$(
_mktemp
)
if
[
"
$DEPLOY_SSH_CERTFILE
"
=
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
cat
"
$_ckey
"
>>
"
$_local_cert_file
"
fi
fi
else
cat
"
$_ccert
"
>>
"
$_local_cert_file
"
if
!
_scp_remote_cmd
"
$_
ccert
"
"
$Le_Deploy_ssh_certfile
"
;
then
if
!
_scp_remote_cmd
"
$_
local_cert_file
"
"
$DEPLOY_SSH_CERTFILE
"
;
then
return
$_err_code
return
$_err_code
fi
fi
fi
else
else
#
copy new certificate into
file
.
#
ssh echo to the
file
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_ccert
"
)
\"
$_pipe
$
Le_Deploy_ssh_certfile
;"
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_ccert
"
)
\"
$_pipe
$
DEPLOY_SSH_CERTFILE
;"
_info
"will copy certificate to remote file
$
Le_Deploy_ssh_certfile
"
_info
"will copy certificate to remote file
$
DEPLOY_SSH_CERTFILE
"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -282,34 +279,16 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -282,34 +279,16 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
# CAFILE is optional.
# If provided then CA intermediate certificate will be copied or appended to provided filename.
_getdeployconf DEPLOY_SSH_CAFILE
_debug2 DEPLOY_SSH_CAFILE
"
$DEPLOY_SSH_CAFILE
"
if
[
-n
"
$DEPLOY_SSH_CAFILE
"
]
;
then
if
[
-n
"
$DEPLOY_SSH_CAFILE
"
]
;
then
Le_Deploy_ssh_cafile
=
"
$DEPLOY_SSH_CAFILE
"
_savedeployconf Le_Deploy_ssh_cafile
"
$Le_Deploy_ssh_cafile
"
fi
if
[
-n
"
$Le_Deploy_ssh_cafile
"
]
;
then
_pipe
=
">"
_pipe
=
">"
if
[
"
$
Le_Deploy_ssh_cafile
"
=
"
$Le_Deploy_ssh_keyfile
"
]
||
if
[
"
$
DEPLOY_SSH_CAFILE
"
=
"
$DEPLOY_SSH_KEYFILE
"
]
||
[
"
$
Le_Deploy_ssh_cafile
"
=
"
$Le_Deploy_ssh_certfile
"
]
;
then
[
"
$
DEPLOY_SSH_CAFILE
"
=
"
$DEPLOY_SSH_CERTFILE
"
]
;
then
# if filename is same as previous file then append.
# if filename is same as previous file then append.
_pipe
=
">>"
_pipe
=
">>"
_local_ca_file
=
$(
_mktemp
)
elif
[
"
$DEPLOY_SSH_BACKUP
"
=
"yes"
]
;
then
if
[
"
$Le_Deploy_ssh_cafile
"
=
"
$Le_Deploy_ssh_keyfile
"
]
;
then
cat
"
$_ckey
"
>>
"
$_local_ca_file
"
fi
if
[
"
$Le_Deploy_ssh_cafile
"
=
"
$Le_Deploy_ssh_certfile
"
]
;
then
cat
"
$_ccert
"
>>
"
$_local_ca_file
"
fi
cat
"
$_cca
"
>>
"
$_local_ca_file
"
elif
[
"
$Le_Deploy_ssh_backup
"
=
"yes"
]
;
then
# backup file we are about to overwrite.
# backup file we are about to overwrite.
_cmdstr
=
"
$_cmdstr
cp
$
Le_Deploy_ssh_cafile
$_backupdir
>/dev/null;"
_cmdstr
=
"
$_cmdstr
cp
$
DEPLOY_SSH_CAFILE
$_backupdir
>/dev/null;"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -317,21 +296,25 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -317,21 +296,25 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
if
[
"
$Le_Deploy_ssh_use_scp
"
=
"yes"
]
;
then
# copy new certificate into file.
if
[
-n
"
$_local_ca_file
"
]
;
then
if
[
"
$DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
if
!
_scp_remote_cmd
"
$_local_ca_file
"
"
$Le_Deploy_ssh_cafile
"
;
then
# scp the file
return
$_err_code
_local_ca_file
=
$(
_mktemp
)
if
[
"
$DEPLOY_SSH_CAFILE
"
=
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
cat
"
$_ckey
"
>>
"
$_local_ca_file
"
fi
fi
else
if
[
"
$DEPLOY_SSH_CAFILE
"
=
"
$DEPLOY_SSH_CERTFILE
"
]
;
then
if
!
_scp_remote_cmd
"
$_cca
"
"
$Le_Deploy_ssh_cafile
"
;
then
cat
"
$_ccert
"
>>
"
$_local_ca_file
"
return
$_err_code
fi
fi
cat
"
$_cca
"
>>
"
$_local_ca_file
"
if
!
_scp_remote_cmd
"
$_local_ca_file
"
"
$DEPLOY_SSH_CAFILE
"
;
then
return
$_err_code
fi
fi
else
else
#
copy new certificate into
file
.
#
ssh echo to the
file
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_cca
"
)
\"
$_pipe
$
Le_Deploy_ssh_cafile
;"
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_cca
"
)
\"
$_pipe
$
DEPLOY_SSH_CAFILE
;"
_info
"will copy CA file to remote file
$
Le_Deploy_ssh_cafile
"
_info
"will copy CA file to remote file
$
DEPLOY_SSH_CAFILE
"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -340,37 +323,17 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -340,37 +323,17 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
# FULLCHAIN is optional.
# If provided then fullchain certificate will be copied or appended to provided filename.
_getdeployconf DEPLOY_SSH_FULLCHAIN
_debug2 DEPLOY_SSH_FULLCHAIN
"
$DEPLOY_SSH_FULLCHAIN
"
if
[
-n
"
$DEPLOY_SSH_FULLCHAIN
"
]
;
then
if
[
-n
"
$DEPLOY_SSH_FULLCHAIN
"
]
;
then
Le_Deploy_ssh_fullchain
=
"
$DEPLOY_SSH_FULLCHAIN
"
_savedeployconf Le_Deploy_ssh_fullchain
"
$Le_Deploy_ssh_fullchain
"
fi
if
[
-n
"
$Le_Deploy_ssh_fullchain
"
]
;
then
_pipe
=
">"
_pipe
=
">"
if
[
"
$
Le_Deploy_ssh_fullchain
"
=
"
$Le_Deploy_ssh_keyfile
"
]
||
if
[
"
$
DEPLOY_SSH_FULLCHAIN
"
=
"
$DEPLOY_SSH_KEYFILE
"
]
||
[
"
$
Le_Deploy_ssh_fullchain
"
=
"
$Le_Deploy_ssh_certfile
"
]
||
[
"
$
DEPLOY_SSH_FULLCHAIN
"
=
"
$DEPLOY_SSH_CERTFILE
"
]
||
[
"
$
Le_Deploy_ssh_fullchain
"
=
"
$Le_Deploy_ssh_cafile
"
]
;
then
[
"
$
DEPLOY_SSH_FULLCHAIN
"
=
"
$DEPLOY_SSH_CAFILE
"
]
;
then
# if filename is same as previous file then append.
# if filename is same as previous file then append.
_pipe
=
">>"
_pipe
=
">>"
_local_full_file
=
$(
_mktemp
)
elif
[
"
$DEPLOY_SSH_BACKUP
"
=
"yes"
]
;
then
if
[
"
$Le_Deploy_ssh_fullchain
"
=
"
$Le_Deploy_ssh_keyfile
"
]
;
then
cat
"
$_ckey
"
>>
"
$_local_full_file
"
fi
if
[
"
$Le_Deploy_ssh_fullchain
"
=
"
$Le_Deploy_ssh_certfile
"
]
;
then
cat
"
$_ccert
"
>>
"
$_local_full_file
"
fi
if
[
"
$Le_Deploy_ssh_fullchain
"
=
"
$Le_Deploy_ssh_cafile
"
]
;
then
cat
"
$_cca
"
>>
"
$_local_full_file
"
fi
cat
"
$_cfullchain
"
>>
"
$_local_full_file
"
elif
[
"
$Le_Deploy_ssh_backup
"
=
"yes"
]
;
then
# backup file we are about to overwrite.
# backup file we are about to overwrite.
_cmdstr
=
"
$_cmdstr
cp
$
Le_Deploy_ssh_fullchain
$_backupdir
>/dev/null;"
_cmdstr
=
"
$_cmdstr
cp
$
DEPLOY_SSH_FULLCHAIN
$_backupdir
>/dev/null;"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_FULLCHAIN
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -378,21 +341,28 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -378,21 +341,28 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
if
[
"
$Le_Deploy_ssh_use_scp
"
=
"yes"
]
;
then
# copy new certificate into file.
if
[
-n
"
$_local_full_file
"
]
;
then
if
[
"
$DEPLOY_SSH_USE_SCP
"
=
"yes"
]
;
then
if
!
_scp_remote_cmd
"
$_local_full_file
"
"
$Le_Deploy_ssh_fullchain
"
;
then
# scp the file
return
$_err_code
_local_full_file
=
$(
_mktemp
)
if
[
"
$DEPLOY_SSH_FULLCHAIN
"
=
"
$DEPLOY_SSH_KEYFILE
"
]
;
then
cat
"
$_ckey
"
>>
"
$_local_full_file
"
fi
fi
else
if
[
"
$DEPLOY_SSH_FULLCHAIN
"
=
"
$DEPLOY_SSH_CERTFILE
"
]
;
then
if
!
_scp_remote_cmd
"
$_cfullchain
"
"
$Le_Deploy_ssh_fullchain
"
;
then
cat
"
$_ccert
"
>>
"
$_local_full_file
"
return
$_err_code
fi
fi
if
[
"
$DEPLOY_SSH_FULLCHAIN
"
=
"
$DEPLOY_SSH_CAFILE
"
]
;
then
cat
"
$_cca
"
>>
"
$_local_full_file
"
fi
cat
"
$_cfullchain
"
>>
"
$_local_full_file
"
if
!
_scp_remote_cmd
"
$_local_full_file
"
"
$DEPLOY_SSH_FULLCHAIN
"
;
then
return
$_err_code
fi
fi
else
else
#
copy new certificate into
file
.
#
ssh echo to the
file
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_cfullchain
"
)
\"
$_pipe
$
Le_Deploy_ssh_fullchain
;"
_cmdstr
=
"
$_cmdstr
echo
\"
$(
cat
"
$_cfullchain
"
)
\"
$_pipe
$
DEPLOY_SSH_FULLCHAIN
;"
_info
"will copy fullchain to remote file
$
Le_Deploy_ssh_fullchain
"
_info
"will copy fullchain to remote file
$
DEPLOY_SSH_FULLCHAIN
"
if
[
"
$
Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
[
"
$
DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -400,30 +370,22 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -400,30 +370,22 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
fi
fi
fi
fi
fi
fi
# cleanup local files if any
if
[
-n
"
$_local_cert_file
"
]
;
then
# cleanup local files if any
rm
"
$_local_cert_file
"
>
/dev/null 1>&2
if
[
-f
"
$_local_cert_file
"
]
;
then
rm
-f
"
$_local_cert_file
"
fi
fi
if
[
-
n
"
$_local_ca_file
"
]
;
then
if
[
-
f
"
$_local_ca_file
"
]
;
then
rm
"
$_local_ca_file
"
>
/dev/null 1>&2
rm
-f
"
$_local_ca_file
"
fi
fi
if
[
-
n
"
$_local_full_file
"
]
;
then
if
[
-
f
"
$_local_full_file
"
]
;
then
rm
"
$_local_full_file
"
>
/dev/null 1>&2
rm
-f
"
$_local_full_file
"
fi
fi
# REMOTE_CMD is optional.
# If provided then this command will be executed on remote host.
_getdeployconf DEPLOY_SSH_REMOTE_CMD
_debug2 DEPLOY_SSH_REMOTE_CMD
"
$DEPLOY_SSH_REMOTE_CMD
"
if
[
-n
"
$DEPLOY_SSH_REMOTE_CMD
"
]
;
then
if
[
-n
"
$DEPLOY_SSH_REMOTE_CMD
"
]
;
then
Le_Deploy_ssh_remote_cmd
=
"
$DEPLOY_SSH_REMOTE_CMD
"
_cmdstr
=
"
$_cmdstr
$DEPLOY_SSH_REMOTE_CMD
;"
_savedeployconf Le_Deploy_ssh_remote_cmd
"
$Le_Deploy_ssh_remote_cmd
"
_info
"Will execute remote command
$DEPLOY_SSH_REMOTE_CMD
"
fi
if
[
"
$DEPLOY_SSH_MULTI_CALL
"
=
"yes"
]
;
then
if
[
-n
"
$Le_Deploy_ssh_remote_cmd
"
]
;
then
_cmdstr
=
"
$_cmdstr
$Le_Deploy_ssh_remote_cmd
;"
_info
"Will execute remote command
$Le_Deploy_ssh_remote_cmd
"
if
[
"
$Le_Deploy_ssh_multi_call
"
=
"yes"
]
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
if
!
_ssh_remote_cmd
"
$_cmdstr
"
;
then
return
$_err_code
return
$_err_code
fi
fi
...
@@ -445,10 +407,11 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
...
@@ -445,10 +407,11 @@ then rm -rf \"\$fn\"; echo \"Backup \$fn deleted as older than 180 days\"; fi; d
_ssh_remote_cmd
()
{
_ssh_remote_cmd
()
{
_cmd
=
"
$1
"
_cmd
=
"
$1
"
_secure_debug
"Remote commands to execute:
$_cmd
"
_secure_debug
"Remote commands to execute:
$_cmd
"
_info
"Submitting sequence of commands to remote server by ssh"
_info
"Submitting sequence of commands to remote server by
$DEPLOY_SSH_CMD
"
# quotations in bash cmd below intended. Squash travis spellcheck error
# quotations in bash cmd below intended. Squash travis spellcheck error
# shellcheck disable=SC2029
# shellcheck disable=SC2029
$
Le_Deploy_ssh_cmd
"
$Le_Deploy_ssh_user
@
$Le_Deploy_ssh_server
"
sh
-c
"'
$_cmd
'"
$
DEPLOY_SSH_CMD
"
$DEPLOY_SSH_USER
@
$DEPLOY_SSH_SERVER
"
sh
-c
"'
$_cmd
'"
_err_code
=
"
$?
"
_err_code
=
"
$?
"
if
[
"
$_err_code
"
!=
"0"
]
;
then
if
[
"
$_err_code
"
!=
"0"
]
;
then
...
@@ -460,9 +423,12 @@ _ssh_remote_cmd() {
...
@@ -460,9 +423,12 @@ _ssh_remote_cmd() {
# cmd scp
# cmd scp
_scp_remote_cmd
()
{
_scp_remote_cmd
()
{
_secure_debug
"Remote scp source
$1
and destination
$2
using :
$Le_Deploy_ssh_scp_cmd
"
_src
=
$1
_info
"Submitting secure copy command :
$Le_Deploy_ssh_scp_cmd
"
_dest
=
$2
$Le_Deploy_ssh_scp_cmd
"
$1
"
"
$Le_Deploy_ssh_user
"
@
"
$Le_Deploy_ssh_server
"
:
"
$2
"
_secure_debug
"Remote copy source
$_src
to destination
$_dest
using:
$DEPLOY_SSH_SCP_CMD
"
_info
"Submitting secure copy command:
$DEPLOY_SSH_SCP_CMD
"
$DEPLOY_SSH_SCP_CMD
"
$_src
"
"
$DEPLOY_SSH_USER
"
@
"
$DEPLOY_SSH_SERVER
"
:
"
$_dest
"
_err_code
=
"
$?
"
_err_code
=
"
$?
"
if
[
"
$_err_code
"
!=
"0"
]
;
then
if
[
"
$_err_code
"
!=
"0"
]
;
then
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment