testing
This commit is contained in:
22
piawg.sh
22
piawg.sh
@@ -8,7 +8,10 @@
|
|||||||
msg() { printf '[%s]: %s\n' "${2-INFO}" "$1"; }
|
msg() { printf '[%s]: %s\n' "${2-INFO}" "$1"; }
|
||||||
info() { [ "$PIAWG_VERBOSE" -eq 1 ] && msg "$1"; }
|
info() { [ "$PIAWG_VERBOSE" -eq 1 ] && msg "$1"; }
|
||||||
warn() { msg "$1" 'WARN'; }
|
warn() { msg "$1" 'WARN'; }
|
||||||
err() { msg "$1" 'ERROR'; exit 1; }
|
err() {
|
||||||
|
msg "$1" 'ERROR'
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
check_http() { [ "$1" = "${2:-200}" ] && return 0 || return 1; }
|
check_http() { [ "$1" = "${2:-200}" ] && return 0 || return 1; }
|
||||||
check_token() { printf '%s\n' "$1" | grep -q '^[0-9A-Fa-f]\{128\}$'; }
|
check_token() { printf '%s\n' "$1" | grep -q '^[0-9A-Fa-f]\{128\}$'; }
|
||||||
@@ -24,10 +27,13 @@ bao_curl() {
|
|||||||
local error
|
local error
|
||||||
local http_code
|
local http_code
|
||||||
local notfound
|
local notfound
|
||||||
|
local content_type
|
||||||
notfound=0
|
notfound=0
|
||||||
while getopts "n" opt; do
|
content_type='application/json'
|
||||||
|
while getopts "np" opt; do
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
n) notfound=1 ;;
|
n) notfound=1 ;;
|
||||||
|
p) content_type='application/merge-patch+json' ;;
|
||||||
*) err "bao_curl option '$opt' not found" ;;
|
*) err "bao_curl option '$opt' not found" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@@ -35,7 +41,7 @@ bao_curl() {
|
|||||||
path="$BAO_ADDR/v1/$1"
|
path="$BAO_ADDR/v1/$1"
|
||||||
shift
|
shift
|
||||||
error="Failed request to '$path'"
|
error="Failed request to '$path'"
|
||||||
if ! response=$(_curl -H 'Content-Type: application/json' \
|
if ! response=$(_curl -H "Content-Type: $content_type" \
|
||||||
-H "X-Vault-Token: $bao_token" -w '\n%{http_code}' "$@" "$path"); then
|
-H "X-Vault-Token: $bao_token" -w '\n%{http_code}' "$@" "$path"); then
|
||||||
err "$error"
|
err "$error"
|
||||||
fi
|
fi
|
||||||
@@ -72,6 +78,7 @@ pia_addkey() {
|
|||||||
local port
|
local port
|
||||||
local peer_ip
|
local peer_ip
|
||||||
local updates
|
local updates
|
||||||
|
local server_vip
|
||||||
# Add pubkey via PIA API and get connection details
|
# Add pubkey via PIA API and get connection details
|
||||||
info "Adding '$piawg_pubkey' to PIA server $server_cn"
|
info "Adding '$piawg_pubkey' to PIA server $server_cn"
|
||||||
if ! response=$(
|
if ! response=$(
|
||||||
@@ -86,6 +93,8 @@ pia_addkey() {
|
|||||||
[ "$(printf '%s' "$response" | jq -r '.status')" != "OK" ] &&
|
[ "$(printf '%s' "$response" | jq -r '.status')" != "OK" ] &&
|
||||||
err "Failed to addKey to $server_cn"
|
err "Failed to addKey to $server_cn"
|
||||||
|
|
||||||
|
msg "$(echo "$response" | jq .)" 'DEBUG'
|
||||||
|
|
||||||
# Update Wireguard config on OPNsense
|
# Update Wireguard config on OPNsense
|
||||||
updates='{}'
|
updates='{}'
|
||||||
if [ "$server_ip" != "$piawgsrv_srvaddr" ]; then
|
if [ "$server_ip" != "$piawgsrv_srvaddr" ]; then
|
||||||
@@ -127,6 +136,13 @@ pia_addkey() {
|
|||||||
err "Failed to reload Wireguard service"
|
err "Failed to reload Wireguard service"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
server_vip="$(printf '%s' "$response" | jq -r '.server_vip')"
|
||||||
|
info "Updating OpenBao server_vip at $BAO_PATH_CONFIG to $server_vip"
|
||||||
|
set -x
|
||||||
|
bao_curl -p "$BAO_KV_MOUNT/data/$BAO_PATH_CONFIG" -X PATCH \
|
||||||
|
-d "$(jq -n --arg ip "$server_vip" '{data:{server_vip:$ip}}')"
|
||||||
|
set +x
|
||||||
|
|
||||||
# Update firewall rule alias
|
# Update firewall rule alias
|
||||||
piawg_ip_alias="$(opn_curl 'firewall/alias/searchItem' -d '{}' |
|
piawg_ip_alias="$(opn_curl 'firewall/alias/searchItem' -d '{}' |
|
||||||
jq -r ".rows[] | select(.name == \"$OPN_ALIAS\") | .uuid")"
|
jq -r ".rows[] | select(.name == \"$OPN_ALIAS\") | .uuid")"
|
||||||
|
|||||||
Reference in New Issue
Block a user