feat: offline mode — drop binaries in /opt/fw/offline/
Offline deployment for air-gapped corporate environments: - /opt/fw/offline/docker-29.2.1.tgz → Docker static binary - /opt/fw/offline/wallarm-node.tar → Wallarm Docker image - Setup auto-detects and uses offline files - Falls back to apt/docker.io if no offline files
This commit is contained in:
parent
fd641905e0
commit
e25ea0560b
2 changed files with 15 additions and 14 deletions
|
|
@ -8,8 +8,9 @@ BASE = "/opt/fw"
|
|||
APP = f"{BASE}/app"
|
||||
CONF = f"{APP}/fw.conf"
|
||||
STATE = f"{APP}/state.json"
|
||||
WALLARM_IMAGE = "wallarm/node:6.13.0"
|
||||
DOCKER_BIN_URL = "https://git.sechpoint.app/customer-engineering/wallarm/raw/branch/main/docker/binaries/docker-29.2.1.tgz"
|
||||
WALLARM_IMAGE = os.environ.get("WALLARM_IMAGE", "wallarm/node:6.13.0")
|
||||
DOCKER_BIN_URL = os.environ.get("DOCKER_BIN_URL", "")
|
||||
OFFLINE_DIR = f"{BASE}/offline"
|
||||
|
||||
def run(cmd, timeout=120):
|
||||
return subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=timeout)
|
||||
|
|
|
|||
24
setup.sh
24
setup.sh
|
|
@ -68,30 +68,30 @@ else
|
|||
fi
|
||||
chmod +x "${APP_DIR}/main.py" "${WALLARM_DIR}/deploy.sh"
|
||||
|
||||
# ── Install Docker (for container-based deployment) ──────────────────
|
||||
# ── Install Docker ───────────────────────────────────────────────────
|
||||
OFFLINE_DIR="${WALLARM_DIR}/offline"
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
echo -e "${YELLOW}Installing Docker...${NC}"
|
||||
# Check for offline Docker binary first
|
||||
if [ -f "${WALLARM_DIR}/offline/docker-29.2.1.tgz" ]; then
|
||||
echo -e "${YELLOW} Using offline Docker binary...${NC}"
|
||||
tar -xzf "${WALLARM_DIR}/offline/docker-29.2.1.tgz" -C /usr/local/bin/
|
||||
dockerd &
|
||||
sleep 2
|
||||
if [ -f "${OFFLINE_DIR}/docker-29.2.1.tgz" ]; then
|
||||
echo -e "${GREEN} Using offline binary${NC}"
|
||||
tar -xzf "${OFFLINE_DIR}/docker-29.2.1.tgz" -C /usr/local/bin/
|
||||
dockerd &>/dev/null & sleep 2
|
||||
elif [ -n "${DOCKER_BIN_URL:-}" ] && [ -f "${OFFLINE_DIR}/docker.tgz" ]; then
|
||||
tar -xzf "${OFFLINE_DIR}/docker.tgz" -C /usr/local/bin/
|
||||
dockerd &>/dev/null & sleep 2
|
||||
elif command -v apt-get >/dev/null 2>&1; then
|
||||
apt-get install -y -qq docker.io 2>/dev/null
|
||||
elif command -v yum >/dev/null 2>&1; then
|
||||
yum install -y -q docker 2>/dev/null
|
||||
elif command -v dnf >/dev/null 2>&1; then
|
||||
dnf install -y -q docker 2>/dev/null
|
||||
fi
|
||||
systemctl enable docker 2>/dev/null || true
|
||||
systemctl start docker 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# ── Pre-cache Wallarm Docker image if offline file exists ─────────────
|
||||
if [ -f "${WALLARM_DIR}/offline/wallarm-node-6.13.0.tar" ]; then
|
||||
# ── Pre-cache Wallarm image ───────────────────────────────────────────
|
||||
if [ -f "${OFFLINE_DIR}/wallarm-node.tar" ]; then
|
||||
echo -e "${YELLOW}Loading offline Wallarm image...${NC}"
|
||||
docker load -i "${WALLARM_DIR}/offline/wallarm-node-6.13.0.tar" 2>/dev/null || true
|
||||
docker load -i "${OFFLINE_DIR}/wallarm-node.tar" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
echo
|
||||
|
|
|
|||
Loading…
Reference in a new issue