Ola Thoresen
1 year ago
1 changed files with 99 additions and 0 deletions
@ -0,0 +1,99 @@ |
|||
#!/bin/bash |
|||
|
|||
#Here is a script to deploy cert to opengear operations manager. |
|||
|
|||
#returns 0 means success, otherwise error. |
|||
|
|||
|
|||
# Note that SSH must be able to login to remote host without a password... |
|||
# The user must have sudo-access without password |
|||
# |
|||
# SSH Keys must have been exchanged with the remote host. Validate and |
|||
# test that you can login to USER@SERVER from the host running acme.sh before |
|||
# using this script. |
|||
|
|||
|
|||
|
|||
# export OPENGEAR_USER="" # required |
|||
# export OPENGEAR_HOST="om1234" # defaults to domain name |
|||
|
|||
|
|||
Le_Deploy_ssh_cmd="ssh" |
|||
|
|||
#domain keyfile certfile cafile fullchain |
|||
opengear_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" |
|||
|
|||
|
|||
Le_Deploy_og_keyfile="/tmp/$(basename $_ckey)" |
|||
Le_Deploy_og_fullchain="/tmp/$(basename $_cfullchain)" |
|||
|
|||
|
|||
# OPENGEAR ENV VAR check |
|||
if [ -z "$OPENGEAR_HOST" ]; then |
|||
# HOST is not set in environment, check for saved variable |
|||
_getdeployconf OPENGEAR_HOST |
|||
_opengear_host=$OPENGEAR_HOST |
|||
fi |
|||
if [ -z "$_opengear_host" ]; then |
|||
_info "No host found in saved vars. Defaulting to domain: $_cdomain" |
|||
_opengear_host="$_cdomain" |
|||
fi |
|||
if [ -z "$OPENGEAR_USER" ]; then |
|||
_debug "USER not found in ENV variables lets check for saved variables" |
|||
_getdeployconf OPENGEAR_USER |
|||
_opengear_user=$OPENGEAR_USER |
|||
if [ -z "$_opengear_user" ]; then |
|||
_err "No user found.. If this is the first time deploying please set OPENGEAR_USER in environment variables. Delete them after you have succesfully deployed certs." |
|||
return 1 |
|||
else |
|||
_debug "Using saved env variables." |
|||
fi |
|||
else |
|||
_debug "Detected ENV variables to be saved to the deploy conf." |
|||
_opengear_user="$OPENGEAR_USER" |
|||
# Encrypt and save user |
|||
_savedeployconf OPENGEAR_USER "$_opengear_user" 1 |
|||
_savedeployconf OPENGEAR_HOST "$_opengear_host" 1 |
|||
fi |
|||
_info "Deploying to $_opengear_host" |
|||
|
|||
_cmdstr="sudo echo -e \"set services.https.certificate =$(cat $_cfullchain | base64 -w0)\nset services.https.private_key =$(cat $_ckey | base64 -w0)\npush\" | /usr/unsupported/bin/ogconfig-cli" |
|||
_info "will deploy new certificate" |
|||
if ! _ssh_remote_cmd "$_cmdstr"; then |
|||
return $_err_code |
|||
fi |
|||
|
|||
return $_err_code |
|||
} |
|||
|
|||
|
|||
|
|||
#cmd |
|||
_ssh_remote_cmd() { |
|||
_cmd="$1" |
|||
_secure_debug "Remote commands to execute: $_cmd" |
|||
_info "Submitting sequence of commands to remote server by ssh" |
|||
# quotations in bash cmd below intended. Squash travis spellcheck error |
|||
# shellcheck disable=SC2029 |
|||
_debug $Le_Deploy_ssh_cmd "$_opengear_user@$_opengear_host" sh -c "'$_cmd'" |
|||
$Le_Deploy_ssh_cmd "$_opengear_user@$_opengear_host" sh -c "'$_cmd'" |
|||
_err_code="$?" |
|||
|
|||
if [ "$_err_code" != "0" ]; then |
|||
_err "Error code $_err_code returned from ssh" |
|||
fi |
|||
|
|||
return $_err_code |
|||
} |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue