You already installed PatrowlManager and/or PatrowlEngines. A new version is available and you want to update your installation. Great idea !
- Stop running scans and temporary disable periodic scans
- Stop Celery workers (supervisord):
supervisorctl shutdown - Backup your database
pg_dump -U <postgres_db_username> -W -F c patrowl_db -f /opt/patrowlmanager/save/db.tar
- Backup all your configuration files, including:
- Django/web: env vars:
set > /opt/patrowlmanager/save/.env - Django/web: application settings file:
cp app/settings.py /opt/patrowlmanager/save/settings.py - Django/Web: log files:
cp var/log/* /opt/patrowlmanager/save/log/ - Django/Web: static files:
cp staticfiles/* /opt/patrowlmanager/save/staticfiles/ - Django/Web: media files:
cp media/* /opt/patrowlmanager/save/media/ - Nginx: configuration file:
cp /etc/nginx/conf.d/default.conf /opt/patrowlmanager/save/patrowlmanager_nginx.conf
- Django/web: env vars:
- Update the application files:
git fetch && git pull - Install potential python module updates:
pip install -U -r requirements.txt - Update
app/settings.pyfrom the sample with potential new/old configuration variables - Update static files:
python manage.py collectstatic --noinput - Update DB schema (if already created):
var/bin/update_db_migrations.sh - Prepare potential changes in model defintitions (plz respect the order) :
python manage.py makemigrations scans
python manage.py makemigrations findings
python manage.py makemigrations events
python manage.py makemigrations
- Apply potential changes in DB:
python manage.py migrate - (Re-)Load default data:
python manage.py loaddata var/data/assets.AssetCategory.json
python manage.py loaddata var/data/engines.Engine.json
python manage.py loaddata var/data/engines.EnginePolicyScope.json
python manage.py loaddata var/data/engines.EnginePolicy.json
- Create the default admin user (if not exists):
python manage.py shell < var/bin/create_default_admin.py - Create default team (if not exists):
python manage.py shell < var/bin/create_default_team.py - Restart Celery workers (supervisord):
supervisorctl reload-c var/etc/supervisord.conf - Restart Web server (Gunicorn):
gunicorn -b 0.0.0.0:8003 app.wsgi:application --timeout 300 - Restart service Nginx:
sudo nginx -s reload - Login and enable again your periodic scans
- Give us feedback: getsupport@patrowl.io