Fix docker agent installer for BusyBox wget (#255)
This commit is contained in:
parent
274f36daa8
commit
7ba89da12c
1 changed files with 61 additions and 22 deletions
|
|
@ -428,35 +428,74 @@ fi
|
||||||
|
|
||||||
# Download agent binary
|
# Download agent binary
|
||||||
echo "Downloading Pulse Docker agent..."
|
echo "Downloading Pulse Docker agent..."
|
||||||
DOWNLOAD_URL="$PRIMARY_URL/download/pulse-docker-agent"
|
DOWNLOAD_URL_BASE="$PRIMARY_URL/download/pulse-docker-agent"
|
||||||
|
DOWNLOAD_URL="$DOWNLOAD_URL_BASE"
|
||||||
if [[ -n "$DOWNLOAD_ARCH" ]]; then
|
if [[ -n "$DOWNLOAD_ARCH" ]]; then
|
||||||
DOWNLOAD_URL="$DOWNLOAD_URL?arch=$DOWNLOAD_ARCH"
|
DOWNLOAD_URL="$DOWNLOAD_URL?arch=$DOWNLOAD_ARCH"
|
||||||
fi
|
fi
|
||||||
if command -v wget &> /dev/null; then
|
|
||||||
WGET_ARGS=(-q --show-progress -O "$AGENT_PATH" "$DOWNLOAD_URL")
|
if ! command -v wget &> /dev/null && ! command -v curl &> /dev/null; then
|
||||||
if [[ "$PRIMARY_INSECURE" == "true" ]]; then
|
|
||||||
WGET_ARGS=(--no-check-certificate "${WGET_ARGS[@]}")
|
|
||||||
fi
|
|
||||||
if ! wget "${WGET_ARGS[@]}"; then
|
|
||||||
echo "Error: Failed to download agent binary"
|
|
||||||
echo "Make sure the Pulse server is accessible at: $PRIMARY_URL"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
elif command -v curl &> /dev/null; then
|
|
||||||
CURL_ARGS=(-fL --progress-bar -o "$AGENT_PATH" "$DOWNLOAD_URL")
|
|
||||||
if [[ "$PRIMARY_INSECURE" == "true" ]]; then
|
|
||||||
CURL_ARGS=(-k "${CURL_ARGS[@]}")
|
|
||||||
fi
|
|
||||||
if ! curl "${CURL_ARGS[@]}"; then
|
|
||||||
echo "Error: Failed to download agent binary"
|
|
||||||
echo "Make sure the Pulse server is accessible at: $PRIMARY_URL"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Error: Neither wget nor curl found. Please install one of them."
|
echo "Error: Neither wget nor curl found. Please install one of them."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
WGET_IS_BUSYBOX="false"
|
||||||
|
if command -v wget &> /dev/null; then
|
||||||
|
if wget --help 2>&1 | grep -qi "busybox"; then
|
||||||
|
WGET_IS_BUSYBOX="true"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
download_agent_from_url() {
|
||||||
|
local url="$1"
|
||||||
|
local wget_success="false"
|
||||||
|
|
||||||
|
if command -v wget &> /dev/null; then
|
||||||
|
local wget_args=(-O "$AGENT_PATH" "$url")
|
||||||
|
if [[ "$PRIMARY_INSECURE" == "true" ]]; then
|
||||||
|
wget_args=(--no-check-certificate "${wget_args[@]}")
|
||||||
|
fi
|
||||||
|
if [[ "$WGET_IS_BUSYBOX" == "true" ]]; then
|
||||||
|
wget_args=(-q "${wget_args[@]}")
|
||||||
|
else
|
||||||
|
wget_args=(-q --show-progress "${wget_args[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if wget "${wget_args[@]}"; then
|
||||||
|
wget_success="true"
|
||||||
|
else
|
||||||
|
rm -f "$AGENT_PATH"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$wget_success" == "true" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v curl &> /dev/null; then
|
||||||
|
local curl_args=(-fL --progress-bar -o "$AGENT_PATH" "$url")
|
||||||
|
if [[ "$PRIMARY_INSECURE" == "true" ]]; then
|
||||||
|
curl_args=(-k "${curl_args[@]}")
|
||||||
|
fi
|
||||||
|
if curl "${curl_args[@]}"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
rm -f "$AGENT_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if download_agent_from_url "$DOWNLOAD_URL"; then
|
||||||
|
:
|
||||||
|
elif [[ "$DOWNLOAD_URL" != "$DOWNLOAD_URL_BASE" ]] && download_agent_from_url "$DOWNLOAD_URL_BASE"; then
|
||||||
|
echo "Falling back to server default agent binary..."
|
||||||
|
else
|
||||||
|
echo "Error: Failed to download agent binary"
|
||||||
|
echo "Make sure the Pulse server is accessible at: $PRIMARY_URL"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
chmod +x "$AGENT_PATH"
|
chmod +x "$AGENT_PATH"
|
||||||
echo "✓ Agent binary installed"
|
echo "✓ Agent binary installed"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue