Add deployhook for Edgio
							parent
							
								
									54eba51b35
								
							
						
					
					
						commit
						c508984f56
					
				|  | @ -0,0 +1,80 @@ | |||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| # Here is a script to deploy cert to edgio using its API | ||||
| # https://docs.edg.io/guides/v7/develop/rest_api/authentication | ||||
| # https://docs.edg.io/rest_api/#tag/tls-certs/operation/postConfigV01TlsCerts | ||||
| 
 | ||||
| # This deployment required following variables | ||||
| # export EDGIO_CLIENT_ID="Your Edgio Client ID" | ||||
| # export EDGIO_CLIENT_SECRET="Your Edgio Client Secret" | ||||
| # export EDGIO_ENVIRONMENT_ID="Your Edgio Environment ID" | ||||
| 
 | ||||
| #returns 0 means success, otherwise error. | ||||
| 
 | ||||
| ########  Public functions ##################### | ||||
| 
 | ||||
| #domain keyfile certfile cafile fullchain | ||||
| edgio_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 "$EDGIO_CLIENT_ID" ]; then | ||||
|     _err "EDGIO_CLIENT_ID is not defined." | ||||
|     return 1 | ||||
|   else | ||||
|     _savedomainconf EDGIO_CLIENT_ID "$EDGIO_CLIENT_ID" | ||||
|   fi | ||||
| 
 | ||||
|   if [ -z "$EDGIO_CLIENT_SECRET" ]; then | ||||
|     _err "EDGIO_CLIENT_SECRET is not defined." | ||||
|     return 1 | ||||
|   else | ||||
|     _savedomainconf EDGIO_CLIENT_SECRET "$EDGIO_CLIENT_SECRET" | ||||
|   fi | ||||
| 
 | ||||
|   if [ -z "$EDGIO_ENVIRONMENT_ID" ]; then | ||||
|     _err "EDGIO_ENVIRONMENT_ID is not defined." | ||||
|     return 1 | ||||
|   else | ||||
|     _savedomainconf EDGIO_ENVIRONMENT_ID "$EDGIO_ENVIRONMENT_ID" | ||||
|   fi | ||||
|    | ||||
|   _info "Getting access token" | ||||
|   _data="client_id=$EDGIO_CLIENT_ID&client_secret=$EDGIO_CLIENT_SECRET&grant_type=client_credentials&scope=app.config" | ||||
|   _debug Get_access_token_data "$_data" | ||||
|   _response=$(_post "$_data" "https://id.edgio.app/connect/token" "" "POST" "application/x-www-form-urlencoded" ) | ||||
|   _debug Get_access_token_response "$_response" | ||||
|   _access_token=$(echo "$_response" | _json_decode | _egrep_o '"access_token":"[^"]*' | cut -d : -f 2 | tr -d '"') | ||||
|   _debug _access_token "$_access_token" | ||||
|   if [ -z "$_access_token" ]; then | ||||
|     _err "Error in getting access token" | ||||
|     return 1 | ||||
|   fi | ||||
| 
 | ||||
|   _info "Uploading certificate" | ||||
|   string_ccert=$(sed 's/$/\\n/' "$_ccert" | tr -d '\n') | ||||
|   string_cca=$(sed 's/$/\\n/' "$_cca" | tr -d '\n') | ||||
|   string_key=$(sed 's/$/\\n/' "$_ckey" | tr -d '\n') | ||||
|   _data="{\"environment_id\":\"$EDGIO_ENVIRONMENT_ID\",\"primary_cert\":\"$string_ccert\",\"intermediate_cert\":\"$string_cca\",\"private_key\":\"$string_key\"}" | ||||
|   _debug Upload_certificate_data "$_data" | ||||
|   _H1="Authorization: Bearer $_access_token" | ||||
|   _response=$(_post "$_data" "https://edgioapis.com/config/v0.1/tls-certs" "" "POST" "application/json") | ||||
| 
 | ||||
|   if _contains "$_response" "message"; then | ||||
|     _err "Error in deploying $_cdomain certificate to Edgio." | ||||
|     _err "$_response" | ||||
|     return 1 | ||||
|   fi | ||||
|   _debug Upload_certificate_response "$_response" | ||||
|   _info "Domain $_cdomain certificate successfully deployed to Edgio." | ||||
|   return 0 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	 b1n23
						b1n23