|
|
|
@ -12,6 +12,9 @@
|
|
|
|
|
# export PANOS_USER="" #User *MUST* have Commit and Import Permissions in XML API for Admin Role
|
|
|
|
|
# export PANOS_PASS=""
|
|
|
|
|
#
|
|
|
|
|
# OPTIONAL
|
|
|
|
|
# export PANOS_TEMPLATE="" #Template Name of panorama managed devices
|
|
|
|
|
#
|
|
|
|
|
# The script will automatically generate a new API key if
|
|
|
|
|
# no key is found, or if a saved key has expired or is invalid.
|
|
|
|
|
|
|
|
|
@ -77,7 +80,10 @@ deployer() {
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"certificate-name\"\r\n\r\n$_cdomain"
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"key\"\r\n\r\n$_panos_key"
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"format\"\r\n\r\npem"
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"file\"; filename=\"$(basename "$_cfullchain")\"${nl}Content-Type: application/octet-stream${nl}${nl}$(cat "$_cfullchain")"
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"file\"; filename=\"$(basename "$_cfullchain")\"${nl}Content-Type: application/octet-stream${nl}${nl}$(cat "$_cfullchain")"
|
|
|
|
|
if [ "$_panos_template" ]; then
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"target-tpl\"\r\n\r\n$_panos_template"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
if [ "$type" = 'key' ]; then
|
|
|
|
|
panos_url="${panos_url}?type=import"
|
|
|
|
@ -87,6 +93,9 @@ deployer() {
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"format\"\r\n\r\npem"
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"passphrase\"\r\n\r\n123456"
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"file\"; filename=\"$(basename "$_cdomain.key")\"${nl}Content-Type: application/octet-stream${nl}${nl}$(cat "$_ckey")"
|
|
|
|
|
if [ "$_panos_template" ]; then
|
|
|
|
|
content="$content${nl}--$delim${nl}Content-Disposition: form-data; name=\"target-tpl\"\r\n\r\n$_panos_template"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
#Close multipart
|
|
|
|
|
content="$content${nl}--$delim--${nl}${nl}"
|
|
|
|
@ -173,10 +182,20 @@ panos_deploy() {
|
|
|
|
|
unset _panos_key
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# PANOS_TEMPLATE
|
|
|
|
|
if [ "$PANOS_TEMPLATE" ]; then
|
|
|
|
|
_debug "Detected ENV variable PANOS_TEMPLATE. Saving to file."
|
|
|
|
|
_savedeployconf PANOS_TEMPLATE "$PANOS_TEMPLATE" 1
|
|
|
|
|
else
|
|
|
|
|
_debug "Attempting to load variable PANOS_TEMPLATE from file."
|
|
|
|
|
_getdeployconf PANOS_TEMPLATE
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
#Store variables
|
|
|
|
|
_panos_host=$PANOS_HOST
|
|
|
|
|
_panos_user=$PANOS_USER
|
|
|
|
|
_panos_pass=$PANOS_PASS
|
|
|
|
|
_panos_template=$PANOS_TEMPLATE
|
|
|
|
|
|
|
|
|
|
#Test API Key if found. If the key is invalid, the variable _panos_key will be unset.
|
|
|
|
|
if [ "$_panos_host" ] && [ "$_panos_key" ]; then
|
|
|
|
|