build: select server and logger config at runtime in appimage
This commit is contained in:
parent
64018eb373
commit
2d971d95fc
|
@ -94,7 +94,7 @@ clone_monkey_repo() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_message "Cloning files from git"
|
log_message "Cloning files from git"
|
||||||
branch=${2:-"develop"}
|
branch=${2:-"select-logger-config-at-runtime"}
|
||||||
git clone --single-branch --recurse-submodules -b "$branch" "${MONKEY_GIT_URL}" "${REPO_MONKEY_HOME}" 2>&1 || handle_error
|
git clone --single-branch --recurse-submodules -b "$branch" "${MONKEY_GIT_URL}" "${REPO_MONKEY_HOME}" 2>&1 || handle_error
|
||||||
|
|
||||||
chmod 774 -R "${MONKEY_HOME}"
|
chmod 774 -R "${MONKEY_HOME}"
|
||||||
|
@ -105,7 +105,12 @@ copy_monkey_island_to_appdir() {
|
||||||
cp $REPO_MONKEY_SRC/monkey_island.py $INSTALL_DIR
|
cp $REPO_MONKEY_SRC/monkey_island.py $INSTALL_DIR
|
||||||
cp -r $REPO_MONKEY_SRC/common $INSTALL_DIR
|
cp -r $REPO_MONKEY_SRC/common $INSTALL_DIR
|
||||||
cp -r $REPO_MONKEY_SRC/monkey_island $INSTALL_DIR
|
cp -r $REPO_MONKEY_SRC/monkey_island $INSTALL_DIR
|
||||||
cp ./run.sh $INSTALL_DIR/monkey_island/linux/
|
cp ./run_appimage.sh $INSTALL_DIR/monkey_island/linux/
|
||||||
|
cp ./island_logger_config.json $INSTALL_DIR/
|
||||||
|
|
||||||
|
# TODO: This is a workaround that may be able to be removed after PR #848 is
|
||||||
|
# merged. See monkey_island/cc/environment_singleton.py for more information.
|
||||||
|
cp $INSTALL_DIR/monkey_island/cc/server_config.json.standard $INSTALL_DIR/monkey_island/cc/server_config.json
|
||||||
}
|
}
|
||||||
|
|
||||||
install_monkey_island_python_dependencies() {
|
install_monkey_island_python_dependencies() {
|
||||||
|
@ -231,7 +236,7 @@ cp $REPO_MONKEY_SRC/monkey_island/cc/ui/src/images/monkey-icon.svg $APPDIR/usr/s
|
||||||
#cp ./monkey_island.desktop $APPDIR
|
#cp ./monkey_island.desktop $APPDIR
|
||||||
|
|
||||||
log_message "Building AppImage"
|
log_message "Building AppImage"
|
||||||
appimage-builder --recipe monkey_island_builder.yml --skip-appimage
|
appimage-builder --recipe monkey_island_builder.yml
|
||||||
|
|
||||||
|
|
||||||
log_message "Deployment script finished."
|
log_message "Deployment script finished."
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"disable_existing_loggers": false,
|
||||||
|
"formatters": {
|
||||||
|
"simple": {
|
||||||
|
"format": "%(asctime)s - %(filename)s:%(lineno)s - %(funcName)10s() - %(levelname)s - %(message)s"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"handlers": {
|
||||||
|
"console": {
|
||||||
|
"class": "logging.StreamHandler",
|
||||||
|
"level": "DEBUG",
|
||||||
|
"formatter": "simple",
|
||||||
|
"stream": "ext://sys.stdout"
|
||||||
|
},
|
||||||
|
"info_file_handler": {
|
||||||
|
"class": "logging.handlers.RotatingFileHandler",
|
||||||
|
"level": "INFO",
|
||||||
|
"formatter": "simple",
|
||||||
|
"filename": "~/.monkey_island/info.log",
|
||||||
|
"maxBytes": 10485760,
|
||||||
|
"backupCount": 20,
|
||||||
|
"encoding": "utf8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"level": "DEBUG",
|
||||||
|
"handlers": [
|
||||||
|
"console",
|
||||||
|
"info_file_handler"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,7 @@ AppDir:
|
||||||
icon: monkey-icon
|
icon: monkey-icon
|
||||||
version: 1.10.0
|
version: 1.10.0
|
||||||
exec: bin/bash
|
exec: bin/bash
|
||||||
exec_args: "$APPDIR/usr/src/monkey_island/linux/run.sh $HOME/.monkey_island/db"
|
exec_args: "$APPDIR/usr/src/monkey_island/linux/run_appimage.sh"
|
||||||
|
|
||||||
|
|
||||||
apt:
|
apt:
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
DOT_MONKEY=$HOME/.monkey_island/
|
||||||
|
|
||||||
|
configure_default_logging() {
|
||||||
|
if [ ! -f $DOT_MONKEY/island_logger_config.json ]; then
|
||||||
|
cp $APPDIR/usr/src/island_logger_config.json $DOT_MONKEY
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Detecting command that calls python 3.7
|
# Detecting command that calls python 3.7
|
||||||
python_cmd=""
|
python_cmd=""
|
||||||
if [[ $(python --version 2>&1) == *"Python 3.7"* ]]; then
|
if [[ $(python --version 2>&1) == *"Python 3.7"* ]]; then
|
||||||
|
@ -12,10 +21,13 @@ if [[ $(python3.7 --version 2>&1) == *"Python 3.7"* ]]; then
|
||||||
python_cmd="python3.7"
|
python_cmd="python3.7"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DB_DIR=${1:-"./monkey_island/bin/mongodb/db"}
|
mkdir -p $DOT_MONKEY
|
||||||
|
|
||||||
|
DB_DIR=$DOT_MONKEY/db
|
||||||
mkdir -p $DB_DIR
|
mkdir -p $DB_DIR
|
||||||
|
|
||||||
|
configure_default_logging
|
||||||
|
|
||||||
cd $APPDIR/usr/src
|
cd $APPDIR/usr/src
|
||||||
./monkey_island/bin/mongodb/bin/mongod --dbpath $DB_DIR &
|
./monkey_island/bin/mongodb/bin/mongod --dbpath $DB_DIR &
|
||||||
${python_cmd} ./monkey_island.py
|
${python_cmd} ./monkey_island.py --server-config $DOT_MONKEY/server_config.json --logger-config $DOT_MONKEY/island_logger_config.json
|
|
@ -51,4 +51,6 @@ def initialize_from_file(file_path):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: This is only needed so that unit tests pass. After PR #848 is merged, we may be
|
||||||
|
# able to remove this line.
|
||||||
initialize_from_file(DEFAULT_SERVER_CONFIG_PATH)
|
initialize_from_file(DEFAULT_SERVER_CONFIG_PATH)
|
||||||
|
|
Loading…
Reference in New Issue