forked from p34709852/monkey
Merge pull request #301 from guardicore/hotfix/deb-mongodb-req
Hotfix/deb mongodb req
This commit is contained in:
commit
3bc24288f6
|
@ -5,4 +5,4 @@ Homepage: http://www.guardicore.com
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Version: 1.0
|
Version: 1.0
|
||||||
Description: Guardicore Infection Monkey Island installation package
|
Description: Guardicore Infection Monkey Island installation package
|
||||||
Depends: openssl, python-pip, python-dev, mongodb
|
Depends: openssl, python-pip, python-dev
|
||||||
|
|
|
@ -9,16 +9,15 @@ pip2 install virtualenv --no-index --find-links file://$INSTALLATION_FOLDER
|
||||||
virtualenv -p python2.7 ${PYTHON_FOLDER}
|
virtualenv -p python2.7 ${PYTHON_FOLDER}
|
||||||
|
|
||||||
# install pip requirements
|
# install pip requirements
|
||||||
${PYTHON_FOLDER}/bin/python -m pip install -r $MONKEY_FOLDER/monkey_island/pip_requirements.txt --no-index --find-links file://$INSTALLATION_FOLDER
|
${PYTHON_FOLDER}/bin/python -m pip install -r $MONKEY_FOLDER/monkey_island/requirements.txt --no-index --find-links file://$INSTALLATION_FOLDER
|
||||||
|
|
||||||
# remove installation folder and unnecessary files
|
# remove installation folder and unnecessary files
|
||||||
rm -rf ${INSTALLATION_FOLDER}
|
rm -rf ${INSTALLATION_FOLDER}
|
||||||
rm -f ${MONKEY_FOLDER}/monkey_island/pip_requirements.txt
|
rm -f ${MONKEY_FOLDER}/monkey_island/requirements.txt
|
||||||
|
|
||||||
cp ${MONKEY_FOLDER}/monkey_island/ubuntu/* /etc/init/
|
|
||||||
if [ -d "/etc/systemd/network" ]; then
|
if [ -d "/etc/systemd/network" ]; then
|
||||||
cp ${MONKEY_FOLDER}/monkey_island/ubuntu/systemd/*.service /lib/systemd/system/
|
cp ${MONKEY_FOLDER}/monkey_island/service/systemd/*.service /lib/systemd/system/
|
||||||
chmod +x ${MONKEY_FOLDER}/monkey_island/ubuntu/systemd/start_server.sh
|
chmod +x ${MONKEY_FOLDER}/monkey_island/service/systemd/start_server.sh
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable monkey-island
|
systemctl enable monkey-island
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
MONKEY_FOLDER=/var/monkey
|
||||||
|
INSTALLATION_FOLDER=/var/monkey/monkey_island/installation
|
||||||
|
PYTHON_FOLDER=/var/monkey/monkey_island/bin/python
|
||||||
|
|
||||||
|
# Prepare python virtualenv
|
||||||
|
pip2 install virtualenv --no-index --find-links file://$INSTALLATION_FOLDER
|
||||||
|
virtualenv -p python2.7 ${PYTHON_FOLDER}
|
||||||
|
|
||||||
|
# install pip requirements
|
||||||
|
${PYTHON_FOLDER}/bin/python -m pip install -r $MONKEY_FOLDER/monkey_island/requirements.txt --no-index --find-links file://$INSTALLATION_FOLDER
|
||||||
|
|
||||||
|
# remove installation folder and unnecessary files
|
||||||
|
rm -rf ${INSTALLATION_FOLDER}
|
||||||
|
rm -f ${MONKEY_FOLDER}/monkey_island/requirements.txt
|
||||||
|
|
||||||
|
${MONKEY_FOLDER}/monkey_island/install_mongo.sh ${MONKEY_FOLDER}/monkey_island/bin/mongodb
|
||||||
|
|
||||||
|
if [ -d "/etc/systemd/network" ]; then
|
||||||
|
cp ${MONKEY_FOLDER}/monkey_island/service/systemd/*.service /lib/systemd/system/
|
||||||
|
chmod +x ${MONKEY_FOLDER}/monkey_island/service/systemd/start_server.sh
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable monkey-mongo
|
||||||
|
systemctl enable monkey-island
|
||||||
|
fi
|
||||||
|
|
||||||
|
${MONKEY_FOLDER}/monkey_island/create_certificate.sh
|
||||||
|
|
||||||
|
service monkey-island start
|
||||||
|
service monkey-mongo start
|
||||||
|
|
||||||
|
echo Monkey Island installation ended
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
service monkey-island stop || true
|
||||||
|
service monkey-mongo stop || true
|
||||||
|
|
||||||
|
[ -f "/lib/systemd/system/monkey-island.service" ] && rm -f /lib/systemd/system/monkey-island.service
|
||||||
|
[ -f "/lib/systemd/system/monkey-mongo.service" ] && rm -f /lib/systemd/system/monkey-mongo.service
|
||||||
|
|
||||||
|
rm -r -f /var/monkey
|
||||||
|
|
||||||
|
exit 0
|
|
@ -1,19 +0,0 @@
|
||||||
python-dateutil
|
|
||||||
tornado
|
|
||||||
werkzeug
|
|
||||||
jinja2
|
|
||||||
markupsafe
|
|
||||||
itsdangerous
|
|
||||||
click
|
|
||||||
flask
|
|
||||||
Flask-Pymongo
|
|
||||||
Flask-Restful
|
|
||||||
Flask-JWT
|
|
||||||
jsonschema
|
|
||||||
netifaces
|
|
||||||
ipaddress
|
|
||||||
enum34
|
|
||||||
pycryptodome
|
|
||||||
boto3
|
|
||||||
awscli
|
|
||||||
virtualenv
|
|
|
@ -4,7 +4,7 @@ After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
ExecStart=/var/monkey/monkey_island/ubuntu/systemd/start_server.sh
|
ExecStart=/var/monkey/monkey_island/service/systemd/start_server.sh
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Monkey Island Service
|
||||||
|
Wants=monkey-mongo.service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/var/monkey/monkey_island/service/systemd/start_server.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,12 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Monkey Island Mongo Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/var/monkey/monkey_island/bin/mongodb/bin/mongod --quiet --dbpath /var/monkey/monkey_island/db
|
||||||
|
KillMode=process
|
||||||
|
Restart=always
|
||||||
|
ExecStop=/var/monkey/monkey_island/bin/mongodb/bin/mongod --shutdown
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export os_version_monkey=$(cat /etc/issue)
|
||||||
|
MONGODB_DIR=$1 # If using deb, this should be: /var/monkey/monkey_island/bin/mongodb
|
||||||
|
|
||||||
|
if [[ $os_version_monkey == "Ubuntu 16.04"* ]] ;
|
||||||
|
then
|
||||||
|
echo Detected Ubuntu 16.04
|
||||||
|
export tgz_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.12.tgz"
|
||||||
|
elif [[ $os_version_monkey == "Ubuntu 18.04"* ]] ;
|
||||||
|
then
|
||||||
|
echo Detected Ubuntu 18.04
|
||||||
|
export tgz_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.0.8.tgz"
|
||||||
|
elif [[ $os_version_monkey == "Debian GNU/Linux 8"* ]] ;
|
||||||
|
then
|
||||||
|
echo Detected Debian 8
|
||||||
|
export tgz_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian81-3.6.12.tgz"
|
||||||
|
elif [[ $os_version_monkey == "Debian GNU/Linux 9"* ]] ;
|
||||||
|
then
|
||||||
|
echo Detected Debian 9
|
||||||
|
export tgz_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian92-3.6.12.tgz"
|
||||||
|
else
|
||||||
|
echo Unsupported OS
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TEMP_MONGO=$(mktemp -d)
|
||||||
|
pushd $TEMP_MONGO
|
||||||
|
wget $tgz_url -O mongodb.tgz
|
||||||
|
tar -xf mongodb.tgz
|
||||||
|
popd
|
||||||
|
|
||||||
|
mkdir -p $MONGODB_DIR/bin
|
||||||
|
cp $TEMP_MONGO/mongodb-*/bin/mongod $MONGODB_DIR/bin/mongod
|
||||||
|
cp $TEMP_MONGO/mongodb-*/LICENSE-Community.txt $MONGODB_DIR/
|
||||||
|
chmod a+x $MONGODB_DIR/bin/mongod
|
||||||
|
rm -r $TEMP_MONGO
|
||||||
|
|
||||||
|
exit 0
|
|
@ -1,18 +0,0 @@
|
||||||
description "Monkey Island Service"
|
|
||||||
|
|
||||||
start on runlevel [2345]
|
|
||||||
stop on runlevel [!2345]
|
|
||||||
|
|
||||||
respawn
|
|
||||||
respawn limit unlimited
|
|
||||||
|
|
||||||
script
|
|
||||||
chdir /var/monkey
|
|
||||||
exec monkey_island/bin/python/bin/python monkey_island.py
|
|
||||||
end script
|
|
||||||
|
|
||||||
post-stop script
|
|
||||||
if [ -n $UPSTART_EVENTS ]; then
|
|
||||||
exec sleep 2
|
|
||||||
fi
|
|
||||||
end script
|
|
|
@ -18,3 +18,5 @@ boto3
|
||||||
awscli
|
awscli
|
||||||
cffi
|
cffi
|
||||||
PyInstaller
|
PyInstaller
|
||||||
|
virtualenv
|
||||||
|
wheel
|
Loading…
Reference in New Issue