diff --git a/build_scripts/appimage/appimage.sh b/build_scripts/appimage/appimage.sh index d55418df7cc..20dbe7c9741 100755 --- a/build_scripts/appimage/appimage.sh +++ b/build_scripts/appimage/appimage.sh @@ -1,7 +1,7 @@ #!/bin/bash LINUXDEPLOY_URL="https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" -PYTHON_VERSION="3.7.11" +PYTHON_VERSION="3.7.12" PYTHON_APPIMAGE_URL="https://github.com/niess/python-appimage/releases/download/python3.7/python${PYTHON_VERSION}-cp37-cp37m-manylinux1_x86_64.AppImage" APPIMAGE_DIR="$(realpath $(dirname $BASH_SOURCE[0]))" APPDIR="$APPIMAGE_DIR/squashfs-root" @@ -27,6 +27,7 @@ install_package_specific_build_prereqs() { setup_build_dir() { local agent_binary_dir=$1 local monkey_repo=$2 + local deployment_type=$3 pushd $APPIMAGE_DIR @@ -36,6 +37,7 @@ setup_build_dir() { copy_monkey_island_to_build_dir "$monkey_repo/monkey" "$BUILD_DIR" copy_server_config_to_build_dir + modify_deployment "$deployment_type" "$BUILD_DIR" add_agent_binaries_to_build_dir "$agent_binary_dir" "$BUILD_DIR" install_monkey_island_python_dependencies diff --git a/build_scripts/build_package.sh b/build_scripts/build_package.sh index df16c4cd722..12523b51b6d 100755 --- a/build_scripts/build_package.sh +++ b/build_scripts/build_package.sh @@ -20,6 +20,7 @@ exit_if_missing_argument() { echo_help() { echo "usage: build_package.sh [--help] [--agent-binary-dir ] [--branch ]" echo " [--monkey-repo ] [--version ]" + echo " [--deployment ]" echo "" echo "Creates a package for Infection Monkey." echo "" @@ -45,6 +46,9 @@ echo_help() { echo "--version A version number for the package." echo " (Default: dev)" echo "" + echo "--deployment A deployment type for the package." + echo " (Default: develop)" + echo "" echo "--package Which package to build (\"appimage\" or \"docker.\")" exit 0 @@ -72,6 +76,15 @@ install_nodejs() { sudo apt-get install -y nodejs } +install_common_build_prereqs() { + sudo apt-get update + sudo apt-get upgrade -y + + # monkey island prereqs + sudo apt-get install -y curl libcurl4 openssl git build-essential moreutils + install_nodejs +} + is_valid_git_repo() { pushd "$1" 2>/dev/null || return 1 git status >/dev/null 2>&1 @@ -108,7 +121,7 @@ branch="develop" monkey_repo="$DEFAULT_REPO_MONKEY_HOME" monkey_version="dev" package="" - +deployment_type="develop" while (( "$#" )); do case "$1" in @@ -143,6 +156,12 @@ while (( "$#" )); do monkey_version=$2 shift 2 ;; + --deployment) + exit_if_missing_argument "$1" "$2" + + deployment_type=$2 + shift 2 + ;; --package) exit_if_missing_argument "$1" "$2" @@ -188,7 +207,7 @@ install_build_prereqs install_package_specific_build_prereqs "$WORKSPACE" -setup_build_dir "$agent_binary_dir" "$monkey_repo" +setup_build_dir "$agent_binary_dir" "$monkey_repo" "$deployment_type" build_package "$monkey_version" "$DIST_DIR" log_message "Finished building package: $package" diff --git a/build_scripts/common.sh b/build_scripts/common.sh index 85f794128be..5e029433e2f 100644 --- a/build_scripts/common.sh +++ b/build_scripts/common.sh @@ -15,6 +15,11 @@ copy_monkey_island_to_build_dir() { "$src"/monkey_island "$build_dir/" } +modify_deployment() { + local deployment_file_path="$2/monkey_island/cc/deployment.json" + echo -e "{\n \"deployment\": \"$1\"\n}" > $deployment_file_path +} + add_agent_binaries_to_build_dir() { local agent_binary_dir=$1 local island_binaries_path="$2/monkey_island/cc/binaries/" diff --git a/build_scripts/docker/docker.sh b/build_scripts/docker/docker.sh index bf7e78ceefb..6f55ff6a076 100755 --- a/build_scripts/docker/docker.sh +++ b/build_scripts/docker/docker.sh @@ -18,6 +18,7 @@ setup_build_dir() { copy_monkey_island_to_build_dir "$monkey_repo/monkey" "$build_dir" copy_server_config_to_build_dir "$build_dir" + modify_deployment "$deployment_type" "$build_dir" add_agent_binaries_to_build_dir "$agent_binary_dir" "$build_dir" generate_ssl_cert "$build_dir"